This document lists the required functionality for MBAT that will be delivered at the 2008 All-hands Meeting on October 20,2008.
For each category, the collaborators are also listed.
Search Core
Design client data source plugin framework [Daren,Queenie,Steve]
will plugins work with current mbSearch core?
Implement client data source plugin framework [Queenie]
Migrate each datasource as plugin [Queenie]
evaluate what info on metadata server is needed
Query Results Table: [Steve]
Add move/drag column (already exists)
Add sort by column
Add customizable columns (ie: right click table headers and select columns to display like Windows Explorer)
Add resizable JPanel for table
Thumbnail view
Do these concurrently or wait till framework is finished?
Complete support for all query terms
Add CCDB datatypes (wait for plugins?)
3D images (returned as analyze images?)
3D reconstructed surfaces?
Do we have time for this?
Add keyword search functionality
identify which datasources can have keyword functionality
how does term source API integrate?
what will be result types and how to display in results table?
also take a look at Drexel's QA/registration JAVA tools
Subimage - 2D
default algo: manual
Subimage - 3D
default algo: manual
2D - 3D
default algo: ???: _facilitate manual first-find close spot in atlas, then possible implementation of Erh-Fang's contour-based algorithms, although it may be too difficult to implement easily, then follow up with 2D - 2D using algorithm and interface developed above_
Comparison Workspace
Framework for loading data
locally
from Registration workspace
pre-registered spec (XML)
from SRB? or is this covered by Registration workspace
Framework for flexibility and customization
Allow for N comparisons of datasets
Allow for customizable window layout and size
Allow for virtual page of infinite size
Framework for side-by-side view
Framework for maximizing real estate for comparison image
Replace 4-up view
Side-by-side: two windows
Overlay: one window if this is an option that's fine, but not a default as we've found that in general people prefer side-by-side
Collapsible subwindows
Thumbnail viewer
Comparison cart?
Context driven controls
HUD controls overlayed over image for zoom/pan/rotate (aka: GoogleEarth?)
Analysis Tools
Linked controls
Handle different scales? (ie: 2 volumes with different sizes)
Handle different data types? (ie: 2D v. 3D image / surface v. image)
The MBAT team has identified several features for delivery by October 2009 (Society for Neuro Science Annual Meeting: Oct. 17-21)). The following list are goals for the workspaces. Priorities have not yet been assigned and it is not expected that all goals will be met.
User Documentation
Tutorial videos
User Manual pdf
Saving
Save/cache to local file
Viewer workspace:
synchronized cross-hair
Layer controls: expand/collapse all
Layer controls: slider fix
Multi-resolution image layering (different resolutions for label image and template image).
Atlas coloring
by label (paint by number)
by voxel
Set image origin and orientation (generic mechanism which can support Waxholm Space (WHS))
Sept deadline?
Dynamic loading of multi-resolution data (eg: zoomify).
NT/MBL
CCDB
Auto arrange (tile) viewer panes.
Oblique view/arbitrary plane of section through an image volume.
Image painting (segmentation)
Plugin API:
inter-plugin communication
ABA rendering plugin
GENSAT rendering plugin
Hierarchy display
Implement tree view.
Add search hierarchy (research feasibility)
Look into other libraries, methods and layouts for graph display.
The 2D image rendering plugin allows the user to view and manipulate two-dimensional images. Multiple 2D images can be added to any of the 3 axes (Transverse, Sagittal, Horizontal).
Getting Started
To open a file using the 2D image rendering plugin
Open the Viewer Workspace.
If in DualView mode, select the target Viewport (Left-mouse-click anywhere in the viewport in the data display area).
In the Layer Controls, open the dropdown menu to the right of the Open File button.
Select 2D image(s). An open file dialog box appears. Navigate to and select the file(s) you want to open (multiple selection allowed using Shift+Left-mouse-click). Click Open. If successful, the opened image(s) will appear in the target viewport and layer GUI controls are added to the Layer Controls panel.
To open an object from the cart
Open the Viewer Workspace.
If in DualView mode, select the target Viewport (Left-mouse-click anywhere in the viewport in the data display area).
Open the Cart Manager.
Select the cart object(s) you want to open (multiple selection allowed using Shift+Left-mouse-click).
In the Cart Manager, select the dropdown menu to the right of the Open button.
Select 2D image(s). If successful, the opened cart object(s) will appear in the target viewport and layer GUI controls are added to the Layer Controls panel.
To add an empty 2D image rendering layer
Open the Viewer Workspace
If in DualView mode, select the target Viewport (Left-mouse-click anywhere in the viewport in the data display area).
In the Layer Controls, open the dropdown menu to the right of the Add Layer button.
Select 2D image(s). If successful, a layer GUI control is added to the Layer Controls panel.
To add file(s) to an existing 2D rendering plugin layer
Open the Viewer Workspace
Select the target layer in the Layer Controls or in the Viewport.
In the Layer Controls, open the dropdown menu to the right of the Open File button.
Select 2D image(s). An open file dialog box appears. Navigate to and select the file(s) you want to open (multiple selection allowed using Shift+Left-mouse-click).
In the sidebar portion of the open dialog box, select the Add to active layer checkbox. Click Open. If successful, the opened image(s) will be added to the currently selected axis in the target layer.
File Formats supported
The 2D rendering plugin was designed to support any of 2D file formats that can be opened with ImageJ. So far, the following file formats have been verified to open correctly:
Jpeg
GIF
TIFF (color, 16bit greyscale)
PNG
BMP
URLs with MIME type "image/jpeg"
Cart objects supported
derived classes of Image2D
derived classes of Image2DSeries
derived classes of BufferedImageObject
User interface
GUI controls
Show/Hide: button to show/hide the layer in the viewport
Opacity: slider/spinner to adjust the opacity of the layer
Image(s): slider/spinner to cine through multiple images of the current axis
Contrast: slider/spinner to adjust the image contrast
Brightness: slider/spinner to adjust the image brightness
Axis: radiobutton group to select the current axis to view
Flip: buttons to flip the images in the X,Y,and Z axes
Expand/Collapse: button to expand/collapse the GUI controls
Keyboard controls
Left/Right Arrows: Previous/Next image
Up/Down Arrows: Opacity Increase/Decrease
Status bar: When the layer is selected, a status bar is displayed on the bottom of the viewport that shows:
Name of layer (top-left)
Image dimensions (top-right)
Image Coordinates relative to the lower left corner of the image (bottom-left)
Image(s): slave layer is set to proportional image number of master layer (ie: if master layer image is set to 50 of 100 then slave layer is set to image 2 of 4)
The 3D Atlas rendering plugin allows the user to view and manipulate digital atlases in the three orthogonal planar views. The user can interactively select the plane coordinates of any of the orthogonal views, show/hide labels of the atlas, and view a graph of the atlas hierarchy.
Getting Started
To open a file using the 3D atlas rendering plugin
Open the Viewer Workspace.
If in DualView mode, select the target Viewport (Left-mouse-click anywhere in the viewport in the data display area).
In the Layer Controls, open the dropdown menu to the right of the Open File button.
Select 3D atlas. An open file dialog box appears. Navigate to and select the file(s) you want to open (multiple selection allowed using Shift+Left-mouse-click). Click Open. If successful, the digital atlas (volume with colored labels) will appear in the data display area and the label hierarchy graphs will intially be docked to the left-side of the main application frame.
Show/Hide: button to show/hide the layer in the viewport
Opacity: slider/spinner to adjust the opacity of the layer
Image(s): slider/spinner to cine through multiple images of the current axis
Contrast: slider/spinner to adjust the image contrast
Brightness: slider/spinner to adjust the image brightness
Axis: radiobutton group to select the current axis to view
Flip: buttons to flip the images in the X,Y,and Z axes
Expand/Collapse: button to expand/collapse the GUI controls
Label Opacity: slider/spinner to adjust the opacity of the label colors
Label Set: combobox to select the active label hierarchy (for multiple labels when applicable)
Keyboard controls
Left/Right Arrows: Previous/Next image
Up/Down Arrows: Opacity Increase/Decrease
HUD Thumbnails
When a 3D Atlas layer is selected, a heads-up-display (HUD) is overlayed in the viewport that shows the three orthogonal view thumbnails for the currently selected planes. Left-mouse-click and drag inside any of the orthogonal thumbnail views will change the currently selected plane to view.
Status Bar: When the layer is selected, a status bar is displayed on the bottom of the viewport that shows:
Name of the layer (top-left)
Image dimensions of the current axis (top-right)
Image coordinates relative to the bottom left corner of the current image (bottom-left)
Current slice number for each dimension (bottom-right)
Display scale
When the layer is selected, the scale measurements in real physical dimensions are overlayed in the upper right hand corner of the current viewport.
Atlas UI (applied to the layer in the viewport)
Mouse left-double-click: select/deselect the label under the mouse cursor. For atlases with multiple hierarchies, the corresponding label for the other labels are also selected/deselected.
Shift + Mouse left-double-click: group select labels
Mouse hover: moving the mouse cursor over a label in the 3D atlas layer will display the name of the label on the screen. When multiple label hierarchies are available, the corresponding labels are also shown below the primary label.
Mouse right-double-click: if labels have been selected, switches to the Search workspace and sends the name of the labels to the keyword search
In the serialization process, following states are saved:
Rotation
Scaling
Translation
Brightness
Contrast
Opacity
Label opacity
Active axis (Transverse/Sagittal/Horizontal)
Active image number
X-Flip, Y-Flip and Z-Flip values.
Deserialization process restores all the above states.
Linking
3D Atlas - 3D Atlas: using the GUI controls, keyboard controls, and HUD thumbnail controls in the master layer will change all the corresponding controls in the slave layers.
Image(s): slave layer is set to proportional image number of master layer (ie: if master layer image is set to 50 of 100 then slave layer is set to image 2 of 4)
Image(s): slave layer is set to proportional image number of master layer (ie: if master layer image is set to 50 of 100 then slave layer is set to image 2 of 4)
The 3D volume rendering plugin allows the user to view and manipulate volume image data, such as MR and CT, in the three orthogonal planar views. The user can interactively select the plane coordinates of any of the orthogonal views.
Getting Started
To open a file using the 3D volume rendering plugin
Open the Viewer Workspace.
If in DualView mode, select the target Viewport (Left-mouse-click anywhere in the viewport in the data display area).
In the Layer Controls, open the dropdown menu to the right of the Open File button.
Select 3D volume(s). An open file dialog box appears. Navigate to and select the file(s) you want to open (multiple selection allowed using Shift+Left-mouse-click). Click Open. If successful, the opened 3D volume(s) will appear in the target viewport and layer GUI controls are added to the Layer Controls panel.
To open an object from the cart
Open the Viewer Workspace.
If in DualView mode, select the target Viewport (Left-mouse-click anywhere in the viewport in the data display area).
Open the Cart Manager.
Select the cart object(s) you want to open (multiple selection allowed using Shift+Left-mouse-click).
In the Cart Manager, select the dropdown menu to the right of the Open button.
Select 3D volume(s). If successful, the opened cart object(s) will appear in the target viewport and layer GUI controls are added to the Layer Controls panel.
File Formats supported
The 3D volume plugin was designed to support any of 3D volume formats that can be opened with ImageJ. So far, the following file formats have been verified to open correctly:
Analyze image
NifTI image
TIFF stack
URLs with MIME type "image/analyze"
Cart objects supported
derived classes of Volume3D
User interface
GUI controls
Show/Hide: button to show/hide the layer in the viewport
Opacity: slider/spinner to adjust the opacity of the layer
Image(s): slider/spinner to cine through multiple images of the current axis
Contrast: slider/spinner to adjust the image contrast
Brightness: slider/spinner to adjust the image brightness
Axis: radiobutton group to select the current axis to view
Flip: buttons to flip the images in the X,Y,and Z axes
Expand/Collapse: button to expand/collapse the GUI controls
Colormap: combobox to select colormap to apply to data
Keyboard controls
Left/Right Arrows: Previous/Next image
Up/Down Arrows: Opacity Increase/Decrease
HUD Thumbnails
When a 3D Volume layer is selected, a heads-up-display (HUD) is overlayed in the viewport that shows the three orthogonal view thumbnails for the currently selected planes. Left-mouse-click and drag inside any of the orthogonal thumbnail views will change the currently selected plane to view.
Status Bar: When the layer is selected, a status bar is displayed on the bottom of the viewport that shows:
Name of the layer (top-left)
Image dimensions of the current axis (top-right)
Image coordinates relative to the bottom left corner of the current image (bottom-left)
Current slice number for each dimension (bottom-right)
Display scale
When the layer is selected, the scale measurements in real physical dimensions are overlayed in the upper right hand corner of the current viewport.
In the serialization process, following states are stored:
Translation
Rotation
Scaling
Opacity
Brightness
Contrast
Active image index for each axis (Transverse, Sagittal, Horizontal)
Deserialization process restores values for all the above states.
Linking
3D Volume - 3D Volume: using the GUI controls, keyboard controls, and HUD thumbnail controls in the master layer will change all the corresponding controls in the slave layers.
Image(s): slave layer is set to proportional image number of master layer (ie: if master layer image is set to 50 of 100 then slave layer is set to image 2 of 4)
Image(s): slave layer is set to proportional image number of master layer (ie: if master layer image is set to 50 of 100 then slave layer is set to image 2 of 4)
Objective: To integrate the NeuroCommons Google Map API ABA demo into MBAT and if successful, use this same method for other types of data
CONCEPT
Query Initiation:
Provide a user with a context-sensitive menu (i.e. right-click on Windows; CNTL-click on Mac) over a gene "painted" image overlaying microarray data on our atlases.
That menu enables a user to select a related 2D data set based on metadata run against the ABA RDF repository such as:
Gene Symbol or name
Slice orientation if both are available (sagittal or coronal)
Brain region (once NeuroCommons has finished populating their map of which sections cut through which ABA atlas brain region volumes)
Additional categories such as project or imaging type for data from other sources
With the returned collection of ImagePyramid URLs, MBAT will present a Java browser using the NeuroCommons Google Map JS code
Initially defaulting to the median section in the series (coronal or sagittal)
Later want to connect this with our atlasing infrastructure
Add to the current Google Map widgets a slice-axis slider to enable the user to select other section image pyramid sets ("stained" & "expressed").
This widget would simply enable the user to navigate across the list of section URLs (ImagePyramid URLs in Alan R's ABA ontology) for a given sectioned brain (coronal or sagittal) for a given gene.
We could also enter a "Slice Axis" toggle button (for those 4000 brains where ABA has both coronal & sagittal) to enable a user to flip between the two views.
General Plan:
Obtain the ABA Zoomify image set URLs linked to a given gene name
System used by NeuroCommons to host SPARQL query service
Determine which Java library provides the best Java HTML browser class
How to integrate instantiating that class in response to the user right-clicking on a gene name (or brain region)
including how to send the appropriate ABA zoomify image set URL into the JS code.
This particular task will be much easier once we have a Portal version of MBAT (WOMBAT), since then you'd simply have a Servlet/JSP page that contained the JS code and you could use various AJAX libs built for use with the Apache Tomcat Servlet container and Struts framework.
Middle layer object searching NC written by Queenie
This design was evaluated in the context of the general concept based queries (discussion under 4/6/07) and it seems it should fit nicely with this approach
set environmental variable PYTHONPATH to the directory that contains "_xmlplus"
then start python interactive mode by typing
>> Python
type in
>> import sys
>> import xml
>> import xml.xpath
press return.
Upload data
If you have a more updated version that downloaded from CVS,
run
>>./ReInstall.sh
otherwise, run
>> ./Install.sh
Edit ConfigureSite file, to make sure all the entries are present.
The entries should be similar to the following:
ScriptInstallDir="/Users/me/aidb/uploader"
Institution="loni"
InstitutionID=7
TempDIR="/Users/me/aidb/uploader/temp"
DBHost="bcc-stage-00.nbirn.net"
DBPort=1521
DBInstance="hiddev"
DBUser=""
DBPass=""
User=""
UseCXOracle=0
UserName=""
HostString="bcc-stage-00.nbirn.net:1521:hiddev"
HIDPRD=""
Navigate to the installed directory, and run the following:
Add protocol and subject group information to the database.
** Note: You should only ever have to do this once, unless the project setup file changes.
>> sh AddExperiment2HID.sh
Configure Scanners and Behavior Equipment you use for this phase of data collection.
>> sh ScannerInfo.sh
Create an image directory structure.
** Note: you need to make sure all the image data for a visit is available from a single directory tree.
The root of this tree will have several subdirectories, each corresponding to an anatomical or
functional scan. Inside each subdirectory should be the image data in whatever format your scanner
produces.
Example
MRI study in DICOM format collectin a T1, T2, and a proton density image
Image Directory Structure: /t1/*.dcm /t2/*.dcm /pd/*.dcm t1, t2, pd are arbitrary names we pick, you can use any name that is relevant to your experiment.
Create an upload .xml file storing Subject and Visit information
** Note: Once you have created the image directory structure, create a new upload XML file for the visit you
are uploading. You should base this on the file FBIRNSubject2007TE_Template.xml in the upload script
directory. Do not change the "nameStandard" fields! Make sure to enter info for all fields, especially
"sliceorder" and "discacqs". There are comments in this file to help you along. The template file is
set up to do a "Local-SRB" upload, i.e. it will maintain a local copy of what it is uploading to the
SRB. This is a good idea. If you absolutely don't have space, you can change this to "SRB".
Add visit, segments, study, series information to database
>> sh AddVisit2HID.sh SubjectVisit.xml
Upload image data to SRB
>> sh Upload.sh /Volumes/Supersize/BXD-exp/BXD (series must be under the bxd file)
../ImageWrapper.xml
../<temp directory>
FAQ
Q. If you get the error: ImportError: No module named xpath
after entering import xml.xpath when running python in interactive mode.
You need to install PythonXML module. Make sure to set
the enviornment variables PYTHONPATH to the directory that contains "_xmlplus".
The ABA data source plugins allows the user to query the publicly available Allen Brain Atlas database (http://www.brain-map.org) and retrieve the images hosted on their website.
Getting Started
To access the ABA data source plugin
open the Search Workspace
switch to the query term subworkspace by selecting Search > By query terms in the menu bar
Functional Specification
Search and Data types
The ABA data source plugin supports the following search types:
Search by query terms
The ABA data source plugin returns the following type of data:
Alzheimer’s Disease, Tet-off APP Transgenic Mouse Model
Alzheimer's disease is thought to arise from the accumulation of a small peptide termed amyloid-beta that is normally found in healthy individuals, but is abnormally abundant in the brains of AD patients. The peptide aggregates into extracellular lesions or amyloid plaques that are found throughout the hippocampus and cortex of affected individuals. Both amyloid pathology and the cognitive decline associated with AD can be recreated in transgenic mouse models for the disease. Mice overexpressing the human amyloid precursor protein (APP) with mutations identified from families with inherited AD generate high levels of amyloid-beta and form amyloid plaques similar to those used found in the brains of patients with AD.
The mouse BIRN will examine a transgenic mouse model for AD in which the expression of APP can be controlled with antibiotic treatment. We anticipate that this controllable transgenic mouse model can be used with MRI and the other methods employed by collaborators in the mouse BIRN to study the long-term kinetics of amyloid lesions in the brain under conditions similar to those expected from future AD therapies.
jboline - 25 Jan 2006
There has been a suggestion for how several different atlas conventions could be created, accessed, and viewed on the Visualization page. It would essentially be a semi-wiki type page that could be accessed by the MBAT tool. This would allow users to create, edit, visualize, and comment on several different types of atlas conventions. In addition, the users would be able to create structural hierarchies in conjunction with their atlases.
Related Working Pages
Should have
- a system of coordinates which can be related to a reference coordinate system (Paxinos & Franklin)
- a reference atlas or brain image
- a map: a labeled atlas or brain image (closed contours corresponding to neuroanatomical structures)
- a way to compare a particular data set to the atlas (side by side scrolling or overlay)
Can have (static) information
- animal: species, strain, ID, age, sex, weight, behavioral and/or anatomical and/or physiological phenotype, normal or wild type or control vs model of disease (stage of disease, phenotype), in vivo versuss ex vivo, animal preparation, whole or part imaged
- image modality
-acquisition parameters or staining
-resolution in plane between planes
-location: plane orientation and position, position in plane
-image intensity and or corresponding parameters (T1,T2, cell density, receptor density, uptake)
-image preprocessing if any (registered, scaled, intensity normalized , parametric map ...)
-associated with other images (for multimodality studies) or with different postprocessing (labeling, etc)
-which labels & synonyms(latin &english name) (ontology)
-rater or labeler (in case there are multiple people processing data in the same way) so interrater analysis can be done
Can provide (dynamic) information
- all images associated with the current one (for multimodality studies) or postprocessing (labeling)
- location and parameters of a point selected by the user
- see same region in some other or in all images associated with the current one
- simultaneous viewing in different windows and /or overlay
- parameters of other images at the same location
- measure distances
- measure SNR, CNR
- label at this location, cell type(s) in label, involvement of structure in normal physiological activity or in disease, volume, variability, connectivity (visualize system), extent
- analysis & studies done on this particular brain
- planar, 3D view
- overlay atlas with current data set
- overlay two data sets
b) review the API and demo communications, to see if it will fit your atlas (Willy and Joshua will help with this)
c) review the current representation of "atlas state", to see if it is general enough
d) formally describe spatial reference systems we use: e.g. Stereotaxic1 (used at UCLA), Stereotaxic2 (used in UCSD atlas), image1 (used at Drexel)
e) define transformations between all coordinate systems, and some canonical stareotaxic system (either Stereotaxic1 or 2)
f) create services for converting between the coordinate systems (though for a limited number of coordinate systems just sharing conversion code fragments would be more robust). It is straightforward for some conversions; may be pretty involved when converting from image to stereotaxic. For the latter, we need to have a couple test cases
g) create services for format conversion: i.e. between polygons specified as coordinate pairs or triplets, and collections of pixels/voxels (Bill mentioned that they may have appropriate code at Drexel).
Now with respect to ontology - the "semantic reference system" may be handled in a similar way: i.e. when giving a name of a feature must also
specify the ontology in which it lives.
2. Ability to search registered images/volumes/segmentations available in other atlases.
a) UCSD will send the schema of our spatial registry source
b) we need to see how to register 3D volumes and 2D images to such or similar source (using Drexel's alignment/warping tools?), so that the metadata sources can be searched in uniform way.
3. Ability to load images / slices / segmentations into any atlas.
a) UCSD will provide sample code for retrieving image fragments from ArcIMS
b) UCSD will develop a web service to return feature coordinates (as polygon boundary, as well as label point) given the feature name and set of slices
c) let's go first through a manual process of loading each other's images.
Work resumed at the end of 2006 with a focus on setting up an Atlas Server that can be used in conjunction with the API for atlas exchange. This outlines the step by step plans of the group.
Synopsis of intitial work plans:
Meeting 1/14/07 between Willy, and UCLA:
Immediate:
Willy will give Allan the origin and define the coordinates of SA in relation to the mouse looking at you
Allan will generate the transformations between the atlases and give Willy a transformation for a single Paxinos slice on Tuesday
We will meet again next Thursday at 10:30 AM
Preparation:
Willy will look into a DB where the transformations can be stored and Allan will have access to update them (the plan is to be able to access these transformations through the server web-services)
Willy will give Steve the source code for testing access to the server
Steve and Heng will begin testing the atlas web-services API sent by Willy and Willy will send basic documentation and a test application for accessing this service
Synopsis of follow up meeting 1/18/07:
Willy, Drexel, and UCLA:
There was still some confusion about the coordinates used by the three systems, so to clarify, we went through them all together:
Confirmed that all three systems have the brain situated in the coordinate frame in pretty much the same manner (NT Y coordinate may be 5 at Bregma, but it still increases going down into the brain)
It’s a little unclear if the coronal planes used in SmartAtlas? are with the animal facing towards us or away from us, but it probably shouldn’t make too much of a difference for how we’ll likely handle the interactions
When we pass values of X, we’ll probably stick to absolute values, as most people will want data from both the left and right sides of the brain
Next steps:
Allan will 10 points in the brain in his atlas and will send the XYZ coordinates as well as the names of the structures that are within those coordinates to Willy, Yoni, and Bill
They will verify that this aligns to their atlases
Allan will send a single transformation to Willy by tomorrow (probably at Bregma 0)
We will use this test transformation for testing purposes as outlined in the previous e-mails.
Below are the transformations in Montreal Neurological Institute XFM format. The XFM files are text files that can be read in any text editor. Though the transformations are in 3 dimensions, I have edited them to two. I was not able to get the full affine transformation nor the thin plate splines to work in 2D. This transformations are in world coordinates (not voxel coordinates), so in order to use them, you will need the step sizes and starts contained in the mnc file header. If you can't read these mnc files, we've put the relevant information from them below the file download link.
Since the transformation is in world coordinates and works off the Paxinos coordinate system, I expect that simply applying the transformation matrix to Paxinos coordinates should yield the appropriate location in the 2D MRI image. We will have to repeat this for every plate; tedious, but doable.
I used the MNI MINC Tools to align the images and manipulate the transformations. They tools can be downloaded at:
http://www.bic.mni.mcgill.ca/software/distribution/
The transformations were produced as follows:
Created a 3D volume from the Paxinos mouse brain atlas plates by scanning in the delineations and spacing them with blank planes.
Aligned MRI volume to Paxinos volume using Register to calculate a full-affine transformation (12 parameter) by picking fiducial points and Mincresample to apply the transformation and resample into the same voxel space as the Paxinos volume.
Separated both volumes in to their component 2D image with Minctoimage and selected Paxinos image closest to bregma (0.02) and corresponding MRI image.
Aligned MRI image to Paxinos image using Register to calculate a rigid body (6 parameter) and a 9 parameter transformation by picking fiducial points and Mincresample to apply the transformation (already in the same voxel space as the Paxinos image).
Manually edited the transformations to remove Z dimension transformations with Xfm2param and Param2xfm.
Inverted transformations so that they convert coordinates from Paxinos atlas to MRI, rather than the other way around, with Xfminvert.
Should have
- a system of coordinates which can be related to a reference coordinate system (Paxinos & Franklin)
- a reference atlas or brain image
- a map: a labeled atlas or brain image (closed contours corresponding to neuroanatomical structures)
- a way to compare a particular data set to the atlas (side by side scrolling or overlay)
- a relatively simple built-in CNS ontology hierarchical search tool such as the "Expression Pattern Search" builit into Genepaint.org (http://www.genepaint.org)
Can have (static) information
- animal: species, strain, ID, age, sex, weight, behavioral and/or anatomical and/or physiological phenotype, normal or wild type or control vs model of disease (stage of disease, phenotype), in vivo versuss ex vivo, animal preparation, whole or part imaged
- image modality
-acquisition parameters or staining
-resolution in plane between planes
-location: plane orientation and position, position in plane
-image intensity and or corresponding parameters (T1,T2, cell density, receptor density, uptake)
-image preprocessing if any (registered, scaled, intensity normalized , parametric map ...)
-associated with other images (for multimodality studies) or with different postprocessing (labeling, etc)
-which labels & synonyms(latin &english name) (ontology)
-rater or labeler (in case there are multiple people processing data in the same way) so interrater analysis can be done
Can provide (dynamic) information
- all images associated with the current one (for multimodality studies) or postprocessing (labeling)
- location and parameters of a point selected by the user
- see same region in some other or in all images associated with the current one
- simultaneous viewing in different windows and /or overlay
- parameters of other images at the same location
- measure distances
- measure SNR, CNR
- label at this location, cell type(s) in label, involvement of structure in normal physiological activity or in disease, volume, variability, connectivity (visualize system), extent
- analysis & studies done on this particular brain
- planar, 3D view
- overlay atlas with current data set
- overlay two data sets
Atlasing Use Cases from Maryann's AtlasIntegration Scenarios document (above)
USE CASE 1:
A researcher selects a region in the Smart Atlas and wants to know: “What genes are expressed in this location and what cells express each?” The first source to be consulted would be microarrays because they would have the largest numbers of possible candidates. However, depending upon the location covered by the microarray, it may not have the spatial resolution required to be certain that it is only targeting the desired location. The results from the microarray can be compared against in situ hybridization tissues to find out what mRNAs and DNA’s are found in this area and the cells that express them. Non-radioactive in situ hybridization has better spatial resolution but isn’t as sensitive as radioactive in situ hybridization. Depending upon the additional information that may be present in a section, e.g., Nissl stain, other counterstains, we may or may not be able to determine the cellular identity of labeled cells. We would then compare the list of genes against the proteins found in the area. Protein maps may yield additional candidates although just because a protein is found there, doesn’t mean that the gene is found there. Comparison of results with a connectivity map might resolve some of the discrepancies. A similar caveat applies to the GCSF: one would have to determine whether the signal is found in cell bodies, dendrites or axon terminals to determine whether or not we would expect the signal to be consistent with the microarray data.
Variations on the above query include: “What genes are expressed at high levels in location X and Y?” What genes are expressed in high levels in location X and low levels in location Y?”
USE CASE 2:
A researcher interested in the Parkinson’s disease model uses the Smart Atlas to investigate patterns of gene expression for genes determined through GeneNetwork to be affected in Parkinson’s disease. These patterns are used to focus investigations of anatomical alterations in the MRM or whole brain histology data available through the LONI or Neuroterrain atlases or retrieved through the Mouse BIRN data federation. Alternatively, changes observed from the MRM data can be used to issue a query in the Smart Atlas for gene expression patterns (or protein expression patterns) that correlate with the observed changes.
Additional Atlasing Use Cases
USE CASE 3:
A researcher is looking at the MDA atlas in MBAT and wishes to look at another atlas for additional information about cell structure in the dentate gyrus. They submit a ROI query in MBAT and pull up the corresponding region in the NT atlas (with the ROI outlined?). Then they would like to see if there are additional sub-divisions of this area, so they pull up the closest corresponding SmartAtlas slice with the ROI delineated. They can then use this to submit a query for any BIRN-accessible datasets (volumes, slices, high resolution EM, microarray, etc.).
USE CASE 4:
A researcher is interested in all BIRN-accessible datasets (volumes, slices, high resolution EM, microarray, etc.) around a nucleus in the cerebellum. They delineate this region in MBAT and submit a query that returns a list of all data from all sources in a format they may visualize using MBAT, a web page, or can download to their desktop.
USE CASE 5:
A researcher is looking at microarray gene expression data they have collected using MBAT. They begin to start examining the microarray data for normals compared to mouse models of Parkinson’s disease. They realize there seems to be something unusual in the caudate/putamen area in relation to gene lcn2. They would like to search the rest of the Mouse BIRN data for any images that:
Show expression patterns for gene lcn2
Were collected to study Parkinson’s disease
Contain the caudate/putamen area
Cell data collected within their delineated region of interest
They would generate this query in MBAT and this would bring up results showing the metadata from all BIRN-accessible data matching this query. They could then visualize the actual data (eventually through MBAT-overlaid on the atlas or their own data) either through a web-page link or they can download the data to their desktop.
USE CASE 6:
A researcher has a series of slices they have collected for an experiment on Schizophrenia. They have found what appears to be a very unusual formation in a part of the brain they are having a difficult time identifying. They decide to register these slices to the NT Atlas so they can visualize it, apply atlas delineations, to it and compare it to other normal datasets.
After registering the data, they use MBAT to access and open this dataset. Then they compare this volume to the corresponding NT atlas and MDA atlas for differences. They then switch off between applying the NT, MDA, and SmartAtlas delineations to it until they have found the most likely explanation for the unusual formation in their dataset.
They then delineate a portion of this area for any high-resolution datasets in normals in this area. They also do a search for any Schizophrenia-related data on the BIRN-accessible datasets.
USE CASE 7:
A researcher has run a query from MBAT for 2D immunohistochemistry slices and finds one of great interest to them that has been registered to Smart Atlas. They wish to examine this image in relation to a 3D volume from a similar experiment and would like to apply atlas delineations to both images. They are able to open both the atlas delineations and the 3D volume in MBAT. Then they are able to open the 2D slice within the appropriate space relative to these two volumes.
Discussion about what is going on for SFN vs. what we want in the long term. Discussion of how to make things interoperable and what that means. Debate between portal and stand alone version.
Bill: Registration pipelines by Drexel
Processing pipelines/workflows using neuroterrain. Specialized for MBL
Platform independence (linux, osX, old Mac)
Network authenticated/network based
Defining (ontologically) a pipeline
Must be database driven
Mostly automated (80-90%) must accommodate manual too
David: Registration Pipeline by LONI
Modular and put things together for a particular type of data.
Processing on remote host or locally
Grid enabled
Technical
Discussion of what happens with these registration tools in the future:
This would be behind the scenes and viewable to the user as some sort of wizard, including tools that tell you what is going on and what has been done with your data to get your results.
Giving the potential for a user to put their data into the viewer and have a rough estimate of what their data looks like relative to the atlas.
Seth: Edinburgh tools showed some of the functions of EMAG and EMAP:
Atlases of embryos at different days (browses their database)
Can browse by gene, by region, by structure, by stage, by expression (or not expressed)
Gene information that is available at those days, and by structure, and can call up images that show what genes are available from your query
Predefined regions are used as a search or you can paint a new region. Clicking a region drives a query
Similar type of interface, plus links to images, ontologies, pubmed
Next couple of years, Rob would like to see the iScope stacks added to the BIRN infrastructure (iScope shows tissue on a microscope, and acts both as a client and server), creates Z axis movies, and can be registered to the larger 2D images. Shows the fine-grained histology from that area. Potentially embed some functionality into an atlas to find these image stacks and do some cell counting.
The other stuff is really necessary to drive these things…
What can or can’t be done will written up by Bill and Willy.
Bill: Data: MBL aligned to Drexel, and in SRB
Data set for SFN, and protocols
Want Query interface to have the following properties:
Want the interface to query across datatypes and sources to come back with a synopsis of how many data-types are available from the different sources (or in the different data types). An overall review of what sort of data fits the query
Then the user would filter and select from these return results (through a text-based interface-perhaps with a thumbnail pop-up) and save data of interest to a “shopping cart”
From this shopping cart, the user would then be able to download it or immediately visualize it (may or may not be in MBAT)
Determined this query interface needs to access a "metadata" database (as previously outlined by Ilya-perhaps provided by the mediator to some extent). See schema suggested by Queenie for this DB metadata_DB.bmp.
Onto-centric Views of Biological Knowledge: some useful examples
The following research articles provide excellent, concrete examples of ontological engineering in biological knowledge domains directly relevant to Mouse BIRN research efforts. They each focus on a different aspect of how extended semantic formalisms can be used to represent complex and highly integrative scientific knowledge relevant to the biological questions being addressed by various Mouse BIRN projects. If one disregards for the present the issue of whether such complexity is achievable and/or useful at this stage in the evolution of Mouse BIRN, these papers prime value is in their cogent, logical deconstruction of biological examples where onto-centric data management & access methods can provide significant added value.
Authors
YoP
Title
Citation
Aitken S.
2005
Formalizing concepts of species, sex and developmental stage in anatomical ontologies.
BrainGraph was originally developed by Ivo using GML format using a
graph display. Then Fotios Konstantinidis developed a HyperTree?
viewer. Ivo's LONI LOVE program has the ability to read and display
BrainGraph files in GML format. Then Allan et al wanted it to be in
XML format, and Heng made the conversion. Shiva and MBAT can read
in XML format of the BrainGraph.
XML Format (.bgx)
As the BrainGraph name implies, it is a direct graph. It contains
both nodes and edges. Nodes are individual structures, and edges
specify the relationships among the structures. Typically the relationship
(and currently the only one) is the anatomical containment relationship.
A simple over view of the file format contains the following:
<braingraph> is the document tag and thus required. atlas is the name of the
atlas and required.
<label> is is a node in the graph representing a structure. index is the
unique index value of the structure. abbreviation is the abbreviation of the
structure and name is the full name of the structure. color field is for
viewing purpose and is required.
<edge> describes a relationship between two structures. It is directed,
and hence head and tail attributes, which are the index value of the structures
of the interest. Currently, the only relationship interpreted is "anatomical containment".
Heng is working on to bring in the following tag:
<meta> which is used to contain meta data, which gives BrainGraph authors the
ability to make note on the file. It is in the following format:
<braingraph atlas="Swanson1998">
<meta>
<author>Allan</author>
<date>Jan 1, 2004</date>
<description>...</description>
<!-- and other texts in any invented tags -->
</meta>
...
</braingraph>
Multiple atlases and multiple braingraphs (ie: mbGraphListeners)
Initiate search from mbGraphPanel
Requirements Specifications
Items in italics still undefined
Atlas
mbGraphPanel events Radial Tree
Single selection (left double-click) (structure highlight) mbGraphEvent(NODE_CLEAR & NODE_ADD)
-->
Node-only highlight* (don't highlight descendants) Gray-out all other nodes to match Viewer (re-anchor)
Multiple selection (shift + left double-click on unselected structure) (structure(s) highlight) mbGraphEvent(NODE_ADD)
-->
Multiple Node highlight* (no re-anchor) Gray-out all non-selected nodes
Toggle Selection (shift + left double-click on selected structure) (structure unhighlight) mbGraphEvent(NODE_REMOVE)
-->
Multiple Node highlight* Gray-out non-selected nodes (no re-anchor)
Reset (left double-click on non-structure) mbGraphEvent(nodeID=0)
-->
Revert to original colors
Structure highlight
< --
Node selection (left double-click node) (Node/Neighbor highlight*) mbGraphEvent(NODE_CLEAR & NODE_ADD) If ancestor node, highlight all descendants Gray-out all other nodes
Structure(s) highlight
< --
Multiple node selection (shift + left double-click unselected node) (Node/descendant highlight*) (no re-anchor) mbGraphEvent(NODE_ADD) If ancestor node, highlight all descendants
Structure unhighlight
< --
Toggle node selection (shift + left double-click selected node) (Node/descendant unhighlight) (no re-anchor) mbGraphEvent(NODE_REMOVE)
Reset
< --
Reset (left double-click in empty area) (clear selected nodes) mbGraphEvent(nodeID=0)
None
Node/descendant highlight* (left single click on node) (re-anchor)
None
Pop-up menu-> Search workspace (right-click in empty area) mbGraphEvent(NODE_LIST)
If you are using Eclipse then all the configuration and build scripts should automatically compile, archive the plugins, and copy them to the appropriate locations. However, after initially importing or making clean, some of the build.xml may not work correctly due to project dependencies. Hence, it is recommended you follow the manual instructions below after an update or make clean.
Instructions to manually build and configure the entire source repository are given below.
Eclipse Builders
By default, many of the MBAT Eclipse projects are configured to automatically run the Ant build.xml during an auto-build. To disable this feature:
Right-click on the Project -> Properties. Select "Builders" in the left panel tree view. Unselect the build.xml builder from the Builder list.
To build the projects, you must the manually run the Ant build.xml scripts as described below.
MBAT 3.0 Plugin Directory Structure
If you are using another IDE, then make sure the plugins are copied to the plugins folder with the following directory structure:
plugins/
mbRegistration/
mbSearch/
workspaces/
Also, when running the executable, make sure the working directory is at the same directory level as the plugins folder. For example, in the Eclipse configuration, the plugins are located in mbat/dist/plugins and the working directory is mbat/dist.
MBAT 3.0 build.xml scripts
In order to build and run mbat3.0, the workspaces and their plugins must be built in the following order due to dependencies. The included build.xml files automatically copy the files to the listed pre-defined locations. To run the ant build, navigate to the build.xml file in the src folder, right-click, choose "Run As"->"Ant Build...". Once you run it once it will be added to the list in the "Run As" shortcut in the toolbar.
mbRegistration
run mbRegistration build.xml (copies mbRegistration.jar to mbWorkspacePlugins\plugins\net.nbirn.mbat.plugins.workspace.Registration\src\lib)
run mbRegistrationPlugins build.xml (copies plugins to mbat/dist/plugins/mbRegistration)
mbSearch
run mbSearch build.xml (copies mbSearch.jar to mbWorkspacePlugins\plugins\net.nbirn.mbat.plugins.workspace.Search\src\lib)
run mbSearchPlugins build.xml (copies plugins to mbat/dist/plugins/mbSearch)
mbViewer
run mbViewer build.xml (copies mbViewer.jar to mbWorkspacePlugins\plugins\net.nbirn.mbat.plugins.workspace.Viewer\src\lib)
mbWorkspacePlugins
For Eclipse, refresh (F5) mbWorkspacePlugins project (reloads the any required jar libraries in src\lib\ )
run mbWorkspacePlugins build.xml (copies plugins to mbat/dist/workspaces)
General build dependency rules:
If you update a tool plugin (ie: a registration method), then you need to run the build.xml for that module (ie: mbRegistration).
If you update a workspace plugin (ie: mbSearch), then you have to run the build.xml for that module (mbSearch) and the workspace plugins (mbWorkspacePlugins).
Note: The Ant build.xml files are used only to copy and package the plugin files. Although some build.xml files have "compile" targets, they are currently experimental and not always maintained.
Running MBAT 3.0
The main() function is located in:
project: mbat
source folder: src/mbat_src
package: net.nbirn.mbat.applicationNEW
class: mbMain.java
To run:
Navigate to mbMain.java, right-click, choose "Run As"->"Java Application"
If the application fails to find the plugin folder, configure the run working directory
Running workspace clients for testing
Each workspace contains standalone clients for testing and debugging. The Main.java class is found under the net.nbirn.mbat.*.client package for that workspace (ie: net.nbirn.mbat.registration.client.Main).
To run:
Navigate to the Main.java class for the workspace, right-click, choose "Run As"->"Java Application"
If the application fails to find the plugin folder, configure the run working directory
The Automated Image Registration (AIR)-based plugin allows the user to create template and register pre- and post- injection mouse brain images in Analyze Image format using the command-line execution of LONI Pipeline workflows (LONI Pipeline).
Getting Started
To use the AIR-based image template creation and registration plugin:
Open the Registration Workspace.
Add and select the Source and Template data
Select the AIR Pipeline Workflow item in the Registration Method combobox. If successful, Pipeline Methods drop-down menu will be displayed in the workspace, along with the I/O-paths window and the command-line output window.
File Formats supported
Analyze Image (16-bit)
Cart objects supported
derived class of Image3D
User interface
Choosing pipeline method:
Select method from drop down menu.
Functional Specification
Create Template method aligns Source images to template image and creates a template based on aligned source images which is saved to the location specified in "Output filename path".
Register Pre-injection method registers source images to the template image. The output of this step are the source images that are in the same space as the template image. The transformation matrices are also saved to be used to register post-injection images.
Register Post-injection method applies the transformation matrices saved from Register Pre-injection step to the appropriate source images to put them in the same space.
Cart Manager is the mechanism using which objects are passed in different workspaces in MBAT. MBAT API users can add new plugins to the application, and still use cart manager as a way of passing objects from one workspace to another.
Cart Basics
Showing/hiding the cart
Show Cart manager: To view cart manager, select View > Cart option from the top menubar.By default cart manager pane is placed on the left side of the application window. It displays the name, source and type of every item currently in the cart in a tabular format.
Hiding Cart manager: To hide cart manager, click on View > Cart option again.
Docking/undocking the cart window
Changing default location of cart manager window: To change the position of the cart manager, users can drag and drop the cart manager to a different location inside or outside the application window.
Changing display size of cart manager window: To change size of the cart manager window, users can use the standard Resize buttons located at the left top side of the cart manager window.
Minimizing cart manager window: Clicking on the "minimize" button located on the top left corner, should minimize the cart manager window, place "Cart Manager" and "Control" tabs on the left side, and expand the viewport area. Following diagram shows the MBAT application view after cart manager has been minimized:
Restoring minimized cart manager window: Clicking on the "Cart Manager" tab will restore the cart manager window to its original state. Following diagram shows the cart manager window after it is restored to its original size.
Using the Cart
Sorting the cart
By default, the cart contents are displayed in the order in which the objects were added to the cart. This ordering can be changed by sorting the contents in one of the following three ways:
Sort by object name: Click on the "Name" column header in the table to sort items based on object name.
Sort by source name: Click on the "Source" column header in the table to sort items based on source name.
Sort by object type: Click on the "Type" column header in the table to sort items based on object type.
Deleting objects
To delete an object from the cart, select the object and then click on the Delete button located at the bottom of the cart manager pane.
To empty the cart, click on the Recycle Bin located at the bottom of the cart manager pane.
Opening objects
To open cart items, select the object(s) in the cart and click on the Open button located at the bottom of the cart manager window.
Note: each workspace handles the Open event different so consult the specific workspace documentation for more details.
The CCDB data source plugins allows the user to query the publicly available Cell Centered Database(http://ccdb.ucsd.edu) and retrieve the cell images hosted on their website.
Getting Started
To access the ABA data source plugin
open the Search Workspace
switch to the query term subworkspace by selecting Search > By query terms in the menu bar
Functional Specification
Search and Data types
The CCDB data source plugin supports the following search types:
Search by query terms
Search by keyword
The CCDB data source plugin returns the following type of data:
See Metadata Mapping page for work on using these common data models to specify Mouse BIRN metadata for upload and query from different data sources and types
The comparison workspace will provide UI components to (1) view and compare several datasets at once and (2) apply analysis tools. The comparison workspace will stress flexibility and customization:
Allow for N view of datasets
Allow for customizable window layout and size
The comparison workspace will have similar functionality as the Noodle Viewports:
Drag borders to resize viewports
Drag'n'drop viewports to change layout
Linking of viewports (action applied to one viewport applied to all linked viewports)
This section gives instructions on how to create the mbat.jar application file using Eclipse. The Ant build file used in these instructions is located at:
Auto-create net.nbirn.mbat.about.BuildInfo.java to update the build info using Ant script (Note, the script uses the command line svn client, see svn+ssh command line setup).
Open build.xml in Eclipse (select in Package Explorer and double-click)
Run the svnrevision2java target (in the Outline view, right click the target and select "Run As"->"Ant Build".
Refresh (F5) the mbat project (should automatically rebuild to update the BuildInfo.java class)
Create the .jar file using "Fat Jar"
Right-click on the mbat project, select "Build Fat Jar", and configure the build:
Select the files to include. Note, although the mbXXX libraries are duplicated, the jar file sometimes does not run properly if all them are not selected. For the 3rd party .jar files, only included those that are referenced [TODO: cleanup unused jars].
[Optional] Copy the contents of the dist folder to the install4J folder.
Run the install4J target (Note, you will need to edit the todir location appropriately)
These instructions are for adding and creating a new plugin in the MBAT source code. General instructions and Eclipse specific directions are given below.
If you follow the source code plugin file structure, you can run the included ant builds to automatically build and copy your plugin .zip to the correct folder. The following examples assume a new plugin MyPlugin is being added to the mbRegistrationPlugins project.
Create file structure for plugin:
Create a plugin folder in the project (mbRegistrationPlugins/plugins/net.nbirn.mbat.plugins.registration.MyPlugin).
For Eclipse, in the "Navigator" view, choose "File->New->Folder".
Create a source folder "src" in the plugin folder (mbRegistrationPlugins/plugins/net.nbirn.mbat.plugins.registration.MyPlugin/src.
For Eclipse, in the "Navigator" view, choose "File->New->Folder".
Create and place the plugin manifest file plugin.xml in the source folder (mbRegistrationPlugins/plugins/net.nbirn.mbat.plugins.registration.MyPlugin/src/plugin.xml)
For Eclipse, add the source folder to the project: Right click on the project (mbRegistrationPlugins). Choose "New"->"Src Folder". Select the folder name by clicking "Browse" and navigate to the above source folder.
For Eclipse, set the output folder for the plugin. Right-click the newly added source folder and select "Build Path->Configure Build Path". In the "Source" tab, enable "Allow output folders for source folders" by clicking the checkbox. "Output folder" will then appear under the source folders. Double click the "Output folder" item and choose "Specific output folder". Browse for the root source folder and create a classes folder ( mbRegistrationPlugins/plugins/net.nbirn.mbat.plugins.registration.MyPlugin/classes).
Add the source directory to the mbRegistrationPlugins/build.xml to automatically create the .zip archive and copy it to the plugin directory:
Run the ant build:
For Eclipse, in the "Package Explorer" view, right-click on the build.xml file under the !mbRegistrationPlugins project
Select "Run As.." --> "Ant Build"
Adding Plugins Credit
If you would like to show the plugin info on the About dialog, you can edit the plugin.xml like the following:
Example:
Parameters:
The description of the plugin background or function
contact
The contact info of the plugin. It can be phone number, email or http link
provider
The plugin provider info e.g LONI UCLA
author
The plugin authors
version
The plugin build version e.g. 1.0.11
acknowledgement
The acknowlegement information such as grant(s) that suppport(s) the project
Adding JAR libraries to plugins
If your plugin depends on external JAR libraries, there are 2 steps to follow:
JPF allows you to specify the JAR libraries in the plugin.xml manifest (see the JPF home page http://jpf.sourceforge.net for more details). An example to add 3 libraries (RegularDiscreteDataTools.jar, ShapeTool.jar, and LandmarkWarpLibrary.jar) to a plugin is given below:
Note that the path variable is relative to the location of the plugin.xml. If
you are using the soure code file structure mentioned above, you need to create a lib folder under the src folder (ie: net.nbirn.mbat.plugins.registration.Landmark/src/lib. This lib directory will then be included in the archive which is built using the build.xml in the previous section.
To get your plugin to compile in Eclipse, you will need to setup an Eclipse classpath variable if it doesn't exist already (see Setup Classpath Variable). By convention, we use the root folder of the plugins for the name the classpath variable (ie: MBREGISTRATION_PLUGINS_SRC_HOME). After the classpath variable is setup, you then have to add the JAR libraries to the project's build path: Right-click project->"Build Path"->"Configure Build Path"->"Libraries"->"Add Variable"->Select the appropriate class path variable->"Extend"->Select JAR file by navigating through the file browser->Click "OK".
BIRN_definition: A substrain of BALB/c mouse developed at Jackson Laboratory. From Jackson: nbr 150 +?.Snell to Jackson Laboratory after 1940. Males of this substrain are extremely aggressive and will fight if housed together once mature. The Lac substrain separated in 1952 is non-aggressive. Maintained by J, Ola (JLac substrain). (http://www.informatics.jax.org/external/festing/mouse/docs/BALB.shtml)
BIRN_definition: The C57BL/6 substrain of laboratory mouse bred by the Jackson Laboratory. From Jackson: Inbr (J) 150. Origin: substrains 6 and 10 were separated prior to 1937. This substrain is now probably the most widely used of all inbred strains. Substrain 6 and 10 differ at the H9, Igh2 and Lv loci. Maint. by J,N, Ola. \par (http://www.informatics.jax.org/external/festing/mouse/docs/C57BL.shtml)
BIRN_definition: A substrain of CBA mouse developed at the Jackson Labs. The following information was provided by Jackson Labs; Strong, to Andervont 1947, to Jackson Laboratory 1948. Carries gene for retinal degeneration (rd). Skin grafts between CBA/J and CBA/Ca are rejected (Green and Kaufer, 1965). http://www.informatics.jax.org/external/festing/mouse/docs/CBA.shtml
BIRN_definition: A substrain of the CH3 laboratory mouse. From Jackson Laboratories: This strain does not carry mouse mammary tumor virus (MMTV). See JAX Notes, May 2000, #480. This strain is also homozygous for the retinal degeneration allele Pde6brd1. (see also http://www.informatics.jax.org/external/festing/mouse/docs/C3H.shtml
BIRN_definition: A substrain of the FVB inbred laboratory mouse. From Jackson Laboratories: FVB/NJ was inbred for the fv1b allele which confers sensitivity to the Friend leukaemia virus B strain. Due to the prominent pronuclei in their fertilized eggs and the large litter size, FVB/NJ are commonly used for transgenic injection. Relative to many other inbred strains, FVB/NJ is highly susceptible to asthma-like airway responsiveness with significant generation of antigen-specific IgE?. Despite having the H2q MHC haplotype, FVB/NJ are resistant to collagen-induced arthritis...Strain development: In 1966, outbred Swiss mice at the National Institues of Health were selectively bred for either resistance or sensitivity to histamine challenge post pertussis vaccination. At the eighth generation of inbreeding (in the early 1970s), the sensitive line, HSFS/N, was found to carry the Fv1b allele which confers sensitivity to the Friend leukaemia virus B strain. The FVB/N strain resulted from inbreeding this line for the fv1b allele. In 1988 FVB/N mice were imported from NIH to Dr. Taketo at The Jackson Laboratory and in 1991 these were re-derived at F50 into the foundation stocks facility at The Jackson Laboratory. In December 2002 this strain reached F87. (see also http://jaxmice.jax.org/strain/001800.html).
Genetically-modified mice
Animal model: Dopamine transporter knock out mouse
B6;129-/Slc6a3tm2Mca
Bonfire_ID: BF_T0000376
MGI_ID:
BIRN_definition: Genetically modified mouse in which the dopamine transporter was knocked out by targeted mutation. The mouse was produced in the laboratory of Dr. Marc Caron, Duke University. (Giros B, et al., Nature. 1996 379(6566):606-12.)
Animal model: Alpha synuclein overexpressor
B6;D2-Tg(PDGFB-SNCA)NNEma
Bonfire_ID: BF_T0000378
MGI_ID: MGI:1353749
BIRN_definition: Genetically modified mouse in which the transgene for human alpha synuclein is expressed under the control of the platelet derived growth factor promotor. The mouse was produced in the laboratory of Dr. Eliezer Masliah (Masliah et al., Science. 2000 Feb 18;287(5456):1265-9). NN is the line number; for the D line, B6;D2-Tg(PDGFB-SNCA)4Ema
Mediator queries can be used to retrieve SRB locations for data files.
Given there is now a web-service front-end to the Mediator, both MBAT and the workflow tools could fairly easily incorporate a mediator query and make use of the various SRB APIs to resolve the SRB locations returned by the mediator to access the data files themselves.
See attached document for more information on this Mediator-to-SRB connection.
Start with review of GeneNetwork query, there's some mismatching with some of the structure names. For the newer datasets, the structures are being mapped as closely to BIRNLex as possible so the terms match the atlases. Currently, with GN, Steve's using a look-up table. Mapping of structures isn't quite right-send the tables to Rob, Allan, and Maryann
Annotation information for genes: GN has a more complete annotation than that from Affymetrix. Best possibile solution would be to register these from the UTHSC database with the mediator. Jyl will talk to the BIRN CC group to look into it. Internet speed could be a problem?
Return of Gene Expression data: No sorting on parameters yet, would prefer to do that on the server end. UTHSC has it implemented on AJAX, would their code be useful for UCLA?
Review of Zapala/Barlow data: Steve hasn't yet implemented the information from the paper yet...be better to sort this data so it can be uploaded to the BIRN microarray database.
Still unclear of how to change the display in relation to the sorting of information. Still struggling with how to present the data heirarchy
Would like to have an average column for structures (based on features of the mouse)
General layout, the scrolling through the return results is the most important at this point-try to get more column information in the view
GUI stuff is time consuming, so it'd be good to get as much of the layout figured out as possible before changing-Steve and Rob will play around with potential layouts. Allan has a suggested layout he can send around and UCLA will also look into having Zai revisit it.
Is it possible to add the ability to let the user adjust the settings they want? User would need a cookie
UTHSC will be able to give new data for Illumina arrays for 10 new animals in the near future
UTHSC is working on the punch method, this type of data would be ideal for trying to register spatially to an atlas
UTHSC has data from GNF in an Excel Table. They will try to use the BIRN microarray DB to upload this data.
Potential to upload many other datasets over the summer
The BIRN microarray DB should be registered to the mediator-start migrating all GE data to this DB
Also start migrating the "freely sharable" data to a new "account" that would allow the users to browse any sharable data by any group
Sounds like the current server may not be adequate for our needs in the future. Jyl will talk to CC about moving it to a more appropriate server
We should contact Stan Nelson to demo MBAT. He's part of the microarray consortium, also might be able to look at their DB structure for expansion of ours towards one that would fit our desired common data model. Allan will contact him
Attending: Rob, Beni, Arthur, Daniel, Queenie, Steve, Jyl
Problems uploading the 20 MB file (34 columns), the original has 50-60 column and failed with 30 columns which was 12 MB. Beni will e-mail the screen shot error to Steve. UTHSC will also look for any bad characters in the file. Limit any one upload to 20 MB on old server, but the same user can load multiple files and they can be searched. For Rob, 100 MB would be more appropriate. Queenie thinks the server will need to be tested. For now this'll be fine, but if they ever send low-level array data, it'd be in GBs.
We'll have Beni test the upload server again with all the rows and just one or two columns. Steve will try as well to make sure there's not a bug on the server end. Steve will send Arthur, Beni, and Rob an example for the current annotation information. UTHSC will send their GNF/SymAtlas file annotation file in a similar format.
May be good to allow the user to be sure to idenitfy the appropriate Array along with a normalization table. They can replicate GN's schema, along with an export feature for the tables. Best to register this with the mediator. Also, Steve will speak to Brian about what's involved in registering their DBs.
Only about 10 of the structures will be viewable in MBAT. The list on the server corresponds to Allan's atlas as of a couple months ago. Pituitary gland may not be. Also the problem with entering "other" in the DB. Would like to see it put into the DB that might at some point allow a visual display of body organs. Al Johnson has full-body mouse atlases, could switch atlases to the full body.
Also, make sure the UTHSC group is involved in the call with the CC on these issues 12/20 at 9:30 AM PST if they'd like.
Open Help > Install New Software.... Click on Add to add the subclipse software site. Enter the URL "http://subclipse.tigris.org/update_1.4.x". Click OK.
Select the subclipse site in the dropdown box. The software packages will be populated in the package table as shown below. Select all the packages.
Open Menu "Help > Software updates > Find and install..."
Select "Search for new features to install". Click Next.
Select the Europa discovery site and the SubEclipse update site (add the SubEclipse site via 'New Remote Site' if it isn't present http://subclipse.tigris.org/update_1.2.x/ ). Click Finish.
Select the features to install:
Under the "Europa Discovery Site" tree view, select:
Database Development
Enabling Features
Graphical Editors and Frameworks
Java Development
Models and Model Development
Other Tools > Buckminister - Core (Incubation)
Web and JEE Development
(DO NOT INSTALL Mylyn)
Under the "Subclipse 1.2x (Eclipse 3.2+)" tree view, select only:
Under "SVN interface", select "SVNKIT (Pure Java)".
Click OK.
Eclipse Setup (Checking out projects from SVN repository)
Checkout repository:
Open Menu "New > Other"
Select "SVN > Checkout Projects from SVN". Click Next.
Select "Create a new repository location". Click Next.
For the URL, enter svn+ssh://svn.loni.ucla.edu/cvs/MouseBIRN. Click Next.
If prompted, enter SSH Credentials. Click OK.
Select the trunk folders to checkout (common,dlJGraphics, and all mb* projects). Ctrl-click to checkout multiple projects at one time and click Next when done:
common/trunk
dlJGraphics/trunk
mbManagerCart/trunk
mbManagerDocking/trunk
mbManagerGraph/trunk
mbManagerIO/trunk
mbManagerIOPlugins/trunk
mbManagerPlugin/trunk
mbManagerSerializer/trunk
mbRegistration/trunk
mbRegistrationPlugins/trunk
mbSearch/trunk
mbSearchPlugins/trunk
mbSecurity/trunk
mbSwingExtensions/trunk
mbViewer/trunk
mbViewerPlugins/trunk
mbWorkspace/trunk
mbWorkspacePlugins/trunk
mbat/trunk
Under "Choose how to checkout folder", select "Checkout as project in workspace". The "Project name" should be filled in.
Click Next. Click Finish.
Since the Eclipse configuration files (.classpath and .project) are included in the repository, skip to the next step, setting the CLASSPATH variables (see below). However, if there are problems, you can manually configure the project as follows:
Configure Package Settings:
In the "Package Explorer", right-click on the recently created project. Select "Delete". Select "Do not delete contents". Select "Yes".
Open Menu "File > New > Java Project".
Enter a "Project name" (referenced in this document as $PROJECTNAME$).
Select "Create project from existing source".
Enter location of source code directory checked out from repository. Click Next.
In the "Java Settings" wizard, change the "Default output folder" to $PROJECTNAME$/classes. Click Finish.
Configure Build Path for each project:
Open Menu "Project > Properties" or in the "Package Explorer", right-click on the recently created project. Select "Build Path > Configure Build Path...".
In the "Libraries" Tab, click on "Add External JARS". Navigate to the MouseBIRN\common folder and select all the .jars. Click Open.
In the "Projects" Tab, click on "Add" and select the projects that are required to build.
Click OK to exit Build Path Wizard.
Eclipse Setup (Classpath Variables)
Open Menu "Window->Preferences->Java->BuildPath". Expand "BuildPath" and select "Classpath Variables".
To create a new variable, click the "New" button. Enter variable name (ie: MBAT_COMMON) and path (ie: C:\mbat\common ). Click "OK" to finish.
Each project may required different CLASSPATH variables so check the compiler errors for "Unbound classpath variable" and define that variable.
Eclipse Setup (Setting Java Compiler to Java 6.0)
For each project, right-click and select "Properties". Under the "Java Compiler" category in the tree view, deselect "Enable project specific settings".
Change the default JRE:
WIN32: Select "Window->Preferences". Under the "Java->Installed JREs" category, select an installed JDK 1.6 (if none are listed, you will need to install Java SDK 1.6).
MacOS X: Select "Eclipse->Preferences" (or Command + ,). Under the "Java->Installed JREs" category, select an installed JDK 1.6 (if none are listed, you will need to install Java SDK 1.6).
In order to find the plugin folders, you need to configure the working directory for each application with a main() method (ie: mbat3.0 executable or standalone client). The Eclipse setup assumes the plugin folders are located in mbat/dist.
Open "Run Dialog": Right-click project -> "Run as" -> "Open Run Dialog..." or in the toolbar, select the dropdown menu next to the "Run As" shortcut -> "Open Run Dialog...".
Select the application to edit in the left panel, under the "Java Application" tree view. Note, the application must have been run at least once to show up. To run the application for the first time, see Running MBAT or Running standalone clients.
In the "Arguments" tab, in the "Working directory" section, select "Other:". Click on "Workspace...". Expand "mbat" and select the "dist" folder. Click "OK". Note, if the "dist" folder does not appear then either refresh the mbat project or run the build.xml scripts to create the folder.
Click "Apply".
Eclipse Setup (Adding a library to buildpath with Classpath Variables)
By adding libraries using classpath variables, the .project and .classpath can be easily distributed. This step is unnecessary unless you are adding a new library to the project:
Open Menu "Project->Properties->BuildPath". Select the "Libraries" tab.
Click the "Add Variable..." button. Select a classpath variable. If variable is a folder, click on "Extend" button to select file.
Eclipse Memory Analyzer Setup
The Eclipse Memory Analyzer (http://www.eclipse.org/mat/) plugin helps identify memory usage and memory leaks.
The Memory Analyzer plugin uses a heap dump to analyze the memory. The easiest method to get a heap dump is to use JConsole, which is part of the JDK tools.
Run JConsole ($JDKHOME$\bin\jconsole.exe).
Run application in Eclipse.
In JConsole, make a New Connection Connection > New Connection. Select Local Process and select the corresponding process for your program (identified by the main class).
When ready, to get the heap dump, select the MBeans tab. Expand the com.sun.management > HotSpotDiagnostic > Operations tree. In the Operation invocation panel, enter the filename in p0 with extension .hprof (this is the Memory Analyzer file extension). Click dumpHeap. The file is stored in the working directory of the running application.
Using the Memory Analyzer plugin
To open the heap file in Eclipse, select File > Open File ... and select the .hprof file above. The Memory Analyzer plugin should start running.
Introductory webinar to using the Memory Analyzer: http://live.eclipse.org/node/520. Click on View Webinar to see the presentation.
[TODO]: more details on how to get started checking memory leaks here...
Unzip the release build to a folder of your choice (ie: C:\jogl-1.1.1-windows-i586)
Method #1 (add JOGL dlls to system path)
Windows: add the JOGL lib folder to the PATH environmental variable (ie: C:\jogl-1.1.1-windows-i586\lib). Note: on Vista, you may have to add it to the root PATH environment variable, not the user level in order for it to work.
Mac OS X: add the JOGL lib folder to the DYLD_LIBRARY_PATH environmental variable
Linux: add the JOGL lib folder to the LD_LIBRARY_PATH environmental variable
Close and restart Eclipse
Method #2 (add JOGL dlls to Eclipse runtime environmental variables)
Open "Run Dialog": Right-click project -> "Run as" -> "Open Run Dialog..." or in the toolbar, select the dropdown menu next to the "Run As" shortcut -> "Open Run Dialog...".
Select the application to edit in the left panel, under the "Java Application" tree view. Note, the application must have been run at least once to show up.
In the "Environment" tab, select "New" to add a new environmental variable. Set the environmental variables as specified in Method 1.
Method #3 (set Native Library Path in Eclipse) [this method is not recommended since everytime you update the .classpath or .project files, you will have to configure the native libraries again]
In Eclipse, under the "mbat" project, expand the "Referenced Libraries"
Right-click on "gluegen-rt.jar", select "Properties". In the popup windows, select "Native Library" and select "External Folder" to select the path of the JOGL native libraries (ie: C:\jogl-1.1.1-windows-i586\lib)
Repeat for "jogl.jar"
Misc Preferences Settings
Improve SVN label decorations performace:
Open Preferences > Team > SVN > Label Decorations > General tab. Uncheck "Compute deep outgoing state for folders". Select Apply.
Disable problem reporting as you type (helps improves performance)
Open Preferences > Java > Editor. Disable checkbox for "Report problems as you type". Select Apply.
Show heap status (allows you to initiate garbage collection)
Open Preferences > General. Click on "Show heap status". Click Apply.
The heap status is shown in the lower right. You can click on the "Trash" icon to start the garbage collecction.
The ELN data source plugins allows the user to query the Caltech Electronic Lab Notebook (http://atlasserv.caltech.edu:1977/birn/index.jsp) and retrieve a list of query results (Study Information, Dataset Information, Subject Information). Every Dataset contains a number of MRI image scans stored in NIFTI format.
Getting Started
To access the ELN data source plugin
open the Search Workspace
switch to the keyword subworkspace by selecting Search > By keyword in the menu bar
Functional Specification
Search and Data types
The ELN data source plugin supports the following search types:
Search by keyword
The ELN data source plugin returns the following type of data:
Vector<mbQueryResult>, list of query results (Study Name, Subject ID, Study Description, Study ID). Every Search Result contains links to 3D Volume MRI Image Scans stored in NIFTI format.
Annotations
For the ELN Dataset, the following annotations are listed:
Name
Subject ID
Description
Study ID
Credentials
You must be on the Caltech Network (on campus or via VPN) to access the ELN Datasource. There are no username/passwords required.
(submitted by Seth)
The Edinburgh Mouse Atlas Project(EMAP) is essentially composed of two major sections. An anatomy browser and gene expression database (EMAGE). Essentially the gene expression database can be accessed through an image interface, an ontological hierarchy of anatomy or a text based search. See the EMAP site (http://genex.hgu.mrc.ac.uk).
The anatomical part is straightforward. Mousing over as structure highlights the anatomical component and displays the name. Clicking on the structure shows it's location in the ontology. Right clicking on the anatomy brings up a menu which will query MGI GXD or EMAGE for the selected anatomy.
EMAGE has two parts; a web based query which, other than minor layout differences, has much of the same functionality as the anatomical browser. The real fun is the JAVA application "EMAGE DB" which can be be downloaded from http://genex.hgu.mrc.ac.uk/Emage/database/emageIntro.html. EMAGE DB allows query and browsing of the EMAGE database either by embryonic stage, gene expressed or anatomical component (stage specifically) that genes are expressed in. It also allows you to "paint" a region on a whole mount image and ask what genes are expressed under the painted region (Not unlike SMARTAtlas). All entries in the database are annotated with photographic plates of the expression pattern, assessment of the signal strength, the "author" of the entry and accession to literature and other databases (i.e. MGI).
The power of EMAP/EMAGE are the links to outside sources and databases.
The following file formats are currently supported by MBAT.
Image volume files
Analyze(tm) (*.img, *.hdr): http://www.mayo.edu/bir/PDF/ANALYZE75.pdf
Nifti header files are supported.
SHIVA can also read GZIP compressed image files (*.img.gz).
Big volume is supported for uncompressed image files with byte, short, and rgb formats only.
Currently, SHIVA supports the following file types:
binary (1-bit, converted to byte format internally)
byte (8-bit)
short (16-bit, signed/unsigned)
rgb (24-bit)
float (32-bit, converted to short format internally)
Nifti (*.nii): http://nifti.nimh.nih.gov/nifti-1/
SHIVA can only handle Nifti volumes with transformation matrix with scaling and shifting. Other transformations are treated as an identify matrix.
SHIVA can also read GZIP compressed image files (*.nii.gz).
The .atlas file format is an XML based file format to specify a labelled atlas object which consists of:
3D volume data (ie: MR data)
label set(s):
3D label volume (ie: same dimensions as 3D volume data where each voxel specifies an integer ID associated with a label)
Label file (ie: ontology file that maps colors to label IDs and describes the relationships between the labels)
The MBAT3.0 .atlas file format differs from the MBAT2.0 format since it allows multiple label sets per 3D volume. An example .atlas file is given below for an atlas with 2 label sets:
The full XML Schema Definition can be found here mbatAtlas.xsd.
DarenLee? - 16 Apr 2009
The Graph Manager presents hierarchical anatomical structure information using a radial tree display that is synchronized with the atlas image in the Viewer workspace. The graph display provides an alternate means of navigating the atlas hierarchy. Rather than selecting the structures from the atlas image, the user can select the corresponding nodes in the graph display. Any atlas delineations that identify the selected node’s structure or substructures will be highlighted the same color in the atlas display. Likewise, when the structures are selected directly in the Viewer atlas image, the corresponding node is highlighted in the graph.
User Interface
Selecting nodes
Selecting a parent node in the graph automatically selects all child substructures, but selecting a structure in the atlas image in the Viewer workspace only selects the node for the structure that was actually clicked.
Single selection: Left mouse double-click a node in the graph to select or deselect it. If selected, the node is highlighted in the graph (and in the atlas) and all other nodes are grayed out.
Multiple selection: Shift + left mouse double-click adds or removes the current node from the selected list. The selected node(s) are highlighted in the graph (and in the atlas).
Clear the selection: Left mouse double-click in an empty area in the graph will clear the selected list of nodes. All nodes will return to their default color.
Changing the view
Left mouse-drag on an empty area of the graph to reposition the graph.
Scroll the Mouse wheel to zoom in or out.
Sending to search workspace
Right mouse double-click anywhere on the graph to send the currently selected node names to the keyword search subworkspace. The system will switch to the keyword search subworkspace and the node names are entered in the keyword text box.
Loading Graph Data
The graph data is loaded as part of an atlas file.
To load a graph as part of an atlas, a ".ilf" formatted label file must be specified as the “src” attribute of the “labelhierarchy” element in the atlas file (".atlas"). The atlas can then be loaded by selecting the atlas file using the file browser pulldown at the lower left hand corner of the Viewer workspace. As the atlas files are loaded, the IOManager will read the labels from the .ilf file and create a mbGraph object for the display.
Using registration workspace, users can align a source image with respect to a template image. Following diagram shows the design on this workspace:
Default behavior for this workspace is as follows:
Top panel displays a section for selecting source and template data.
Center panel displays a combobox to select the registration plugin. Once a plugin is selected, its GUI will be shown in the center panel.
By default, MBAT provides the following registration methods: (* Note that API users can add other registration methods by creating registration plugins.)
Landmark warp
Adding data to source and template sections
Adding from file(s)
To add a file to the sources list, select the source data section by clicking on it. Next, click on the Plus button located between the source and the template sections. Clicking on this button will open up a file selection box using which user can specify the file to load in the source data section.
To add a file to the template list, select the template data section by clicking on it. Select the template file as specified in the previous step.
Adding from the cart
Open the Cart.
To add an object from the cart to the sources list, select the source data section by clicking on it. In the cart, select the object to add and click on the Open button (arrow icon). The selected cart object will be added to the sources list.
To add an object from the cart to the templates list, select the template data section by clicking on it. Select the cart object as specified in the previous step.
Saving the result to the cart
To save the result image to the cart, click on the Add to cart button.
System should now display the result image in the cart manager.
Users can now use this cart object for further processing in any other workspaces.
Landmark warp
Applying Landmark warp to source image:
Click on an image in the source section to use this image as a source image.
Click on an image in the template section to use this image as a template image.
Click on the Apply button.
System will display both the source and template images along with other information such as filename and size in pixels.
Hovering the mouse on the source/template image displays X & Y co-ordinates of current location below the image.
Specify landmarks on both source and template images by moving the mouse over the corresponding area and clicking right mouse button (CTRL + Mouse click for Macintosh)
Landmarks are shown as green squares on the images.
To change the location of a landmark, left click on the landmark. This will change the landmark color to red. Draging the mouse to new location while keeping left button pressed will move the selected landmark to the new location.
At least 3 landmarks should be specified before applying any warping algorithm to the source image. The Warp button will get enabled only after at least three landmarks have been specified by the user.
Select registration method to be used for warping. Currently, MBAT core shows following registration methods in the drop-down box:
Click on the Warp button to apply the warp. System will apply the specified warping algorithm on the source image to produce a warped image. The warped image is displayed in the right side image display area.
Deleting a landmark:
Select the landmark to be deleted by left clicking on the landmark position.
Selecting a landmark activates the Delete button located on the left side of source image pane.
Clicking on the delete button should remove the landmark point from both the source and the template images.
Note that if the number of active landmark points goes below three, the Warp button is disabled by the system.
Zoom in/out images:
Select the image(/s) by clicking on the Apply Zoom checkbox located at the right bottom side of each image pane.
Click on zoomin/out buttons to zoom in or zoom out respectively.
Reseting changes:
Select the image(/s) by clicking on the Apply Zoom button located at the right bottom of the each image.
Click on the Home button to reset any zoom related changes made to the selected image.
Saving the warped image to cart:
To save the result image to the cart,click on the Add to cart button.
System should now display the result image in cart manager docking panel.
Users can now use this image for further processing in any other workspaces.
Saving the warped image to local file:
Click on the Save button to store the image to a local file.
This page describes the functional specifications for "File" menu items. The File menu contains following menu options:
File > Open
File > Open > Cart
File > Open > Workspace
File > Open > Workspace Snapshot
File > Save
File > Save > Cart
File > Save > Workspace
File > Save > Workspace Snapshot
File > Save > Export to image
The options for
Following diagram shows the locations of these options.
Menu Options
File
Default behavior for File menu is as follows:
In "Welcome workspace": Only File > Open > Cart option should be enabled, all other options should be grayed out.
In "Search workspace", "Registration workspace" and "Upload workspace": Only File > Open > Cart and File > Save > Cart options should be enabled, all other options should be grayed out.
In "Viewer workspace": all the menu options are enabled.
File > Open > Cart
User can open an existing cart file by clicking on File > Open > Cart. The system displays a file selection box to allow the user to select the cart file. Every cart is stored internally in two files: .cart file and _mtd file. To successfully open a previous cart, it is required that both these files are present in the same directory. If any one of these files is missing, system should display an error message to the user.
There are following 3 use cases:
If "_mtd" file exists: The system initializes the required plugins and restores the cart to the original state(state when the cart was saved to test.cart file). After cart initialization, system opens the "Cart Manager" docking window, and displays the cart contents.
If "_mtd" file does not exist: The system displays an error message indicating that the metadata file is missing. Following error window is popped up in this case:
User selects a file having a different extension(other than ".cart"): The system displays an error message indicating that only ".cart" files can be opened. Following error window is popped up in this case:
File > Open > Workspace
User can open an existing workspace file by clicking on File > Open > Workspace. The system displays a file selection box to allow user to select the workspace file. Internally, system stores a workspace using two files: .ws file and _mtd file. To successfully open a previous workspace, it is required that both these files be present in the same directory.
There are following use cases:
User selects a ".ws" file, and corresponding "_mtd" file are present:
If "Add to existing workspace" option is checked: If the workspace contains other layers, the system will add the "workspace" contents into additional layers, preserving the existing layers.
If "Add to existing workspace" option is not checked: The system will remove all the layers currently being displayed, and reload the workspace with layers from the stored "workspace".
User selects a ".ws" file, but the corresponding "_mtd" file is missing: The system will display an error message indicating that the metadata file is missing. In this case, following error window is shown:
User selects a file with a different extension(other than ".ws"): The system displays an error message indicating that only ".ws" files can be opened. In this case, following error window is shown:
File > Open > Workspace Snapshot
User can open a previously saved workspace snapshot by using this menu item. There are following 2 differences between storing the current session as a workspace vs. saving it as a workspace snapshot:
When stored as "workspace", system creates a ".ws" file and a "_mtd" file to store the state of application. Where as if stored as "workspace snapshot", system creates a ".wslocal" file, a "_mtd" file.
When stored as "workspace snapshot", system also downloads the images from sources, and stores these locally.
There are following use cases in this scenario:
User selects a ".wslocal" file, and all required files are present:
If "Use Downloaded files" option is checked: System reloads the workspace contents using the image files that are stored locally.
If "Add to existing workspace" option is checked: If the workspace contains other layers, the system will add the "workspace snapshot" contents into additional layers, preserving the existing layers.
If "Add to existing workspace" option is not checked: The system will remove all the layers currently being displayed, and reload the workspace with layers from the stored "workspace snapshot".
If "Use Downloaded files" option is not checked: System reloads the workspace, but this time the image files are fetched from their sources, locally stored image files are not utilized.
If "Add to existing workspace" option is checked: If the workspace contains other layers, the system will add the "workspace snapshot" contents into additional layers, preserving the existing layers.
If "Add to existing workspace" option is not checked: The system will remove all the layers currently being displayed, and reload the workspace with layers from the stored "workspace snapshot".
User selects a ".wslocal" file, but corresponding "_mtd" file is missing: The system will display following error window in this case.
<<<TODO: Add missing _mtd image here>>>
User selects a ".wslocal" file, but the directory containing downloaded files is missing (or one or several downloaded files are missing): The system will reload the missing image files from the original source. Thus, this is one way for the users to invalidate the cache.
User selects a file with a different extension (other than ".wslocal"): The system displays an error window in this case as shown below:
<<<TODO: Add wrong file-type image here>>>
File > Save > Cart
User can store the contents of the cart to a file on the local drive by clicking on File > Save > Cart. This opens a window using which the user can specify the name of the file and its location. Internally the system creates two files to store the cart. (.cart file and _mtd file)
There are following use cases in this scenario:
User enters a file name (test.cart), which is new: System will store the cart's contents in ".cart" and "_mtd" files.
User enters a file name (test.cart), but the named file already exists: System will display a message informing user that the file already exists. If the user selects to overwrite the file, the cart contents will be written to this file. Following confirmation window is shown in this case:
User enters a file name(test): The use cases are similar to the above case, except that the system will automatically add ".cart" extension to the user's input. (i.e. the cart will stored in "test.cart" and "test_mtd" files.)
File > Save > Workspace
User can store the workspace state to a file on the local machine by clicking on File > Save > Workspace. This will pop up a save window using which the user can specify the file name and its location. Internally, workspaces are stored in two files.(.ws file and a _mtd file)
There are following use cases in this scenario:
User enters a file name (test.ws), and the file is new: System will store the contents of the workspace in "test.ws" and "test_mtd" files in the location specified by the user.
User enters a file name (test.ws), but the named file already exists: System will display a message informing user that the file already exists. If the user selects to overwrite the file, the state of the workspace will be stored in this file.
User enters a file name(test): Use cases are similar to the above case, except that the system should automatically add ".ws" extension to the user's input. (i.e. the workspace state will be stored in test.ws and test_mtd files.)
File > Save > Workspace Snapshot
User can save the contents of a workspace on local machine using this option. The difference between saving a "workspace snapshot" and saving a "simple workspace" is that in case of workspace snapshot, the system downloads all the image data for the workspace from original source URLs and stores it to local disk. Thus, restoring "workspace snapshot" should be faster than restoring "workspace", since all the required data is already downloaded on the user's machine.
Following are the use cases in this scenario:
User enters a file name (test.wslocal), and the file is new: System will store the workspace contents into "test.wslocal" and "test_wslocal_mtd" files. It will also create a directory named "test_downloaded_files", and download all the images being displayed in the workspace in this directory. These images will be used while restoring the workspace snapshot, instead of fetching the image data from the original sources.
User enters a file name (test.wslocal), but the file already exists: In this case, system will display a message informing user that the file already exists. If the user selects to overwrite the file, the state of workspace will be stored as mentioned in the earlier use case.
User enters a file name (test): The use cases in this scenario are same as mentioned earlier, except that the system will automatically create a file "test.wslocal", and use it to store the state of the workspace.
File > Save > Export to image
User can export the contents of a layer into an image file(.jpg/.png format) by clicking on File > Save > Export to image. This will pop up a save window using which the user can specify the file name and its location.
User enters a file name (test.jpg or test.png), and the file is new: System will export the current active layer as a JPEG or PNG image depending on the file extension. While exporting, opacity, contrast and brightness values for the layer are preserved.
User enters a file name (test.jpg or test.png), but the file already exists: System will display a message informing user that the file already exists. If the user selects to overwrite the file, current active layer will be exported to the specified file.
User enters a filename without any extension: Use cases are similar to the ones mentioned above, except that by default system will create ".jpg" file.
Suggested plan for outlining a Common Data Model (by August 25)
Identify data sources
GeneNetwork (Searchable API)
takes a full list and can do something with it
GEO (text dump, array by array)
upload of data: MAGE-ML is supported, looks like MINiML (XML) may be more comprehensive
create an account
submit platform (type of array used)
submit sample (one dataset for each microarray-can cross subjects, etc. one experimenter would likley submit many of these per experiment)
submit series (links together all samples and explains the experiment)
submit raw data (if you wish)
download of data
query is simple, return of data is dense and difficult to understand and it requires additional filtering by the user
GNF (Genome Institute of Novartis Foundation)
can return a list of genes
symatlas.gnf.org
ptpn2: query is cumbersome, but it may return a list of values for several structures (including some in the brain). We are not sure where the data comes from or how it is added to this database. Looks like they use something called the Bioperl object model.
Array Express (May be a good place to look for APIs etc.)
Public repository for MIAMI-compliant data MGED recommendations: tool called MIAMExpress, or MAGE-ML:
investigate their MAGE Java API
For query, they have what looks like simple HTTP acccess to their repository. However, all the data is returned and it seems you need to download the data yourself. Also this database seems more specialized for type of tissue (more human)
NIH Blueprint Microarray Consortium (***release in 6 months: Stan Nelson, Dietrich Stepsan):
have their own relational databases, but upon publication will store it in GEO
what is the potential for adding this to a mediator accessible DB (they may appreciate this for expansion)?
Barlow/Zapala data:
currently stored at UCSD : same questions as 1st Des Smith dataset
accessible through SA
Local data from Daniel Sforza
currently able to load it locally (annotation is local, but should be from GN)
current interface for visualizing local data is a bit cumbersome
Suggestions from Michael Miller
use the MAGE v1 object model and the associated MAGEstk to code to this model
EBI ArrayExpress? folks have created a useful "simple" version of the format (MAGE-TAB) to accommodate those not equipped technical to provide MAGE v1 format
The GN data source plugins allows the user to query the publicly available GeneNetwork database (http://www.genenetwork.org/) and retrieve a list of query results (Trait, include GeneExpression and Phenotype). Every Trait (include GeneExpression and Phenotype) contains about 100 strains.
Getting Started
To access the GN data source plugin
open the Search Workspace
switch to the keyword subworkspace by selecting Search > By keyword in the menu bar
Functional Specification
Search and Data types
The GN data source plugin supports the following search types:
Search by keyword
The GN data source plugin returns the following type of data:
Vector<mbQueryResult>, list of query results (Trait, include GeneExpression and Phenotype). Every Trait (include GeneExpression and Phenotype) contains about 100 strains. Put the strains into GeneExpression/Phenotype as Children (defined as Vector<mbAnnotatedObject> in class mbAnnotatedObject).
Annotations
For the GeneExpression, the following annotations are listed:
Name
Gene description
Dataset
Gene symbol
Chromosome
Tissue/Cell
Mb
For the Phenotype, the following annotations are listed:
Name
Source
Annotation
Author
Credentials
No credentials are required to query the GN database.
General Standards and Tools for Formalized Representation of Information
Below is a list of wide-spread, general efforts to create formal schemes for representing information in a machine parsable format. Most of these technologies are the culmintation of many decades of development and continue to evolve to meet newly emerging data management/integration and systems interoperability requirements. Many of the ontology resources listed above employ one or more of these formalisms for precise information representation. Most of these standards are widely applied across many displines. A few are focussed on the evolving informatics needs in the biological sciences.
"Extensible Markup Language (XML) is a simple, very flexible text format derived from SGML (ISO 8879), (a data formating standard) originally designed to meet the challenges of large-scale electronic publishing." The XML standards committee now consists of multiple working groups developing rich, flexible XML-derived formalisms for encoding information presentation (XSL, XSLT & XSL/FO), hyperlinks (XLink & XPointer), data schemas (XML Schema) and information queries (XQuery and XPath).
"...is a proposal for a web-based representation and inference layer for ontologies, which combines the widely used modelling primitives from frame-based languages with the formal semantics and reasoning services provided by description logics. It is compatible with RDF Schema (RDFS), and includes a precise semantics for describing term meanings (and thus also for describing implied information)...OIL presents a layered approach to a standard ontology language. Each additional layer adds functionality and complexity to the previous layer. This is done such that agents (humans or machines) who can only process a lower layer can still partially understand ontologies that are expressed in any of the higher layers.."
"...XML has a limited capability to describe the relationships (schemas or ontologies) with respect to objects. The use of ontologies provides a very powerful way to describe objects and their relationships to other objects. The DAML language is being developed as an extension to XML and the Resource Description Framework (RDF). The latest release of the language (DAML+OIL) provides a rich set of constructs with which to create ontologies and to markup information so that it is machine readable and understandable."
"The Web Ontology Language OWL is a semantic markup language for publishing and sharing ontologies on the World Wide Web. OWL is developed as a vocabulary extension of RDF (the Resource Description Framework) and is derived from the DAML+OIL Web Ontology Language...OWL facilitates greater machine interpretability of Web content than that supported by XML, RDF, and RDF Schema (RDF-S) by providing additional vocabulary along with a formal semantics. OWL has three increasingly-expressive sublanguages: OWL Lite, OWL DL, and OWL Full."
"...a framework for specifying the semantics for the languages of the Semantic Web. Some of these languages (notably RDF [RDF-PRIMER] [RDF-VOCABULARY] [RDF-SYNTAX] [RDF-CONCEPTS] [RDF-SEMANTICS], and OWL [OWL]) are currently in various stages of development and we expect others to be developed in the future. This framework is intended to provide a framework for specifying the semantics of all of these languages in a uniform and coherent way. The strategy is to translate the various languages into a common 'base' language thereby providing them with a single coherent model theory."
"(OBO) is an umbrella web address for well-structured controlled vocabularies for shared use across different biological and medical domains." OBO specifies a set of clear requirements a given ontology must meet to be included under their "umbrella", including being provided in one of several formats - e.g., OBO.xml, GO-OWL.xml or text
"The purpose of NLM's Unified Medical Language System® (UMLS®) is to facilitate the development of computer systems that behave as if they "understand" the meaning of the language of biomedicine and health...There are three UMLS Knowledge Sources: the Metathesaurus®, the Semantic Network, and the SPECIALIST lexicon...The Metathesaurus® is a very large, multi-purpose, and multi-lingual vocabulary database that contains information about biomedical and health related concepts, their various names, and the relationships among them. It is built from the electronic versions of many different thesauri, classifications, code sets, and lists of controlled terms used in patient care, health services billing, public health statistics, indexing and cataloging biomedical literature, and /or basic, clinical, and health services research...(the) purpose (of the Metathesaurus®) is to link alternative names and views of the same concept together (i.e., create a Semantic Concordance across all source vocabularies) and to identify useful relationships between different concepts. All concepts in the Metathesaurus® are assigned to at least one semantic type from the Semantic Network. This provides consistent categorization of all concepts in the Metathesaurus at the relatively general level represented in the Semantic Network. Many of the words and multi-word terms that appear in concept names or strings in the Metathesaurus® also appear in the SPECIALIST lexicon. The lexical tools are used to generate the word, normalized word, and normalized string indexes to the Metathesaurus®...the Semantic Network provides a consistent categorization of all concepts represented in the UMLS Metathesaurus® and provides a set of useful relationships between these concepts. All information about specific concepts is found in the Metathesaurus®; the Semantic Network provides information about the set of basic semantic types, or categories, which may be assigned to these concepts, and it defines the set of relationships that may hold between the semantic types...There are major groupings of semantic types for organisms, anatomical structures, biologic function, chemicals, events, physical objects, and concepts or ideas. The SPECIALIST lexicon provides the lexical information needed for the SPECIALIST Natural Language Processing System (NLP). It is intended to be a general English lexicon including many biomedical terms. Coverage includes both commonly occurring English words and biomedical vocabulary. The lexicon entry for each word or term records the syntactic, morphological, and orthographic information needed by the SPECIALIST NLP System. The lexical programs or tools address the high degree of variability in natural language words and terms. ...(They) allow the user to abstract away from this sort of variation."
The GENSAT (Rockefeller) data source plugins allows the user to query the publicly available GENSAT database from http://www.gensat.org) and retrieve the images hosted on at NCBI.
Getting Started
To access the GENSAT data source plugin
open the Search Workspace
switch to the query term subworkspace by selecting Search > By query terms in the menu bar
Functional Specification
Search and Data types
The GENSAT (Rockefeller) data source plugin supports the following search types:
Search by query terms
The GENSAT (Rock data source plugin returns the following type of data:
The GENSAT (Entrez) data source plugins allows the user to query the publicly available NCBI GENSAT database(http://www.ncbi.nlm.nih.gov/projects/gensat/) and retrieve the images hosted at NCBI.
Getting Started
To access the GENSAT (Entrez) data source plugin
open the Search Workspace
switch to the query term subworkspace by selecting Search > By query terms in the menu bar
Functional Specification
Search and Data types
The GENSAT (Entrez) data source plugin supports the following search types:
Search by keyword
The GENSAT (Entrez) data source plugin returns the following type of data:
2D Image
Annotations
For the 2DImage, the following annotations are listed:
Name
Image ID
Age
Full Size Image Height
Full Size Image Width
Icon Image Width
Medium Size Image Height
Regular Image Height
MGI ID
Gene ID
Technique
Section Plane
Bac Address
Stain
Gene Name
Accession
Organism
Bac Marker
Sex
Gene Alias
Genbank ID
Gene Symbol
Annotation List
Section Level
Magnification
Credentials
No credentials are required to query the GENSAT (Rockefeller) database.
Database Connection Type
HTTP
Workspace Interoperability
Comparison Viewer Workspace
Open and visualize data using built-in 2D image plugin
The Mouse BIRN group works with many types of images and deals with multiple data sources. Many of the groups work with 3D volumes (mostly MR volumes). These may be raw or processed data, including atlases (which contain several types of information associated with anatomy). Our goal with this work is for the AIDB to be one of the primary Mouse BIRN publicly accessible data sources for users to upload and expose their data using tools created by the FBIRN group that are modified to fit our needs.
This resource would be available for:
Mouse BIRN source databases (clone relevant parts of their DB)
Any external users to access through simple user interfaces
EAE_Visit.xml: Visit/Subject Example XML from EAE experiment
What's next:
Allan and Deepthi will take the XML scripts modified by Dingying and Dave today and try to make them work at UCLA.
Dingying will try to get their local upload script working and look at it to make sure it’s what we want.
Meet again before and at the AHM
11/07: Mouse_XML_Upload.zip: simple JAVA gui for creating project and subject XML files
Due to meetings and other deadlines, no progress on uploading to AIDB yet, meet again this month
11/19/07: met with Jeff B, Dingying, Allan, and Jyl: meeting minutes. All groups will try to upload a single dataset and meet next Tuesday 27th 10 AM to discuss any problems.
12/11/07: Allan has been able to set up a project on the AIDB, but he's having problems uploading data. Jeff B has set up a project on the portal and is working on modifying the project XML file.
1/29/07: Allan is still having problems with the Path and hasn't been able to upload data yet. Jeff B ran into several issues while trying to run the installation and has started working on the Subject XML (he will look at Allan's examples on this wiki to see if those help). Queenie will put together some documentation that's specific for Mouse BIRN to help us through this process.
sruffins - 16 Apr 2009
MBAT Future Development
This document is a list of suggestions for the future MBAT development. Although the direction of MBAT development within mouse BIRN will be primarily focused on image processing and image presentation/visualization, we will support the construction of other workspaces. An example workspace might be a microarray workspace. Database search and access to online resources will be handled through the search workspace and will leverage the information technologies and capabilities developed at ISI/BIRN CC.
Imaging & image processing:
edit Analyze header
export image stacks to volume and volumes to image stacks
open time varying data and movies
image filtering
gaussian smoothing
noise reduction
edge detection
threshold and intensity binning
bit depth conversion
intensity re-mapping
gamma manipulation
LUT editing & application
connectivity
generalized LONI pipeline workspace
rigid body alignment
Image analysis:
signal extraction and mapping
morphometrics measurements:
length & angle measurements
area/volume calculation
perimeter/surface area
Visualization:
montage a set of 2D images (gallery view)
stacks to tiles & tile 2D series
surface rendering
volume rendering
Atlas functionality:
2D atlases and 2D atlas series
paint regions (atlas creation)
ROI selection
What are the needs for a quantitative workspace and for what kinds of data?
How do I find the preferred Mouse BIRN strain name? (Jyl)
Where do I find the tools to register my DB to the mediator? (Jyl)
Subject ID Questions:
What methods are available to map my local Subject ID to a BIRN Subject ID? (Jyl)
How do I locate the BIRN Subject ID that I need to map to my local Subject ID? (Jyl)
Query:
How do I make a query over registered databases?
What tools can I try out for a trival test query? (Sally)
Allan sees a trend in the EAE brains he didn't see earlier (i.e. their Corpus Callosum is much thicker) and wants to find ALL the EAE animal volumes collected at both Duke and CIT so he can measure to see if there is a difference between the normal and EAE animals (Jyl)
What metadata would he need?
What would he use to take a quick look at the volumes and metadata to decide if it fit's his needs?
What tools are available for him to run further analyses and re-upload the newly processed data?
How does the newly processed data get linked to the original data?
Someone decides they want to do a study of the different collection methods, so they do a search for all the normal animals collected by each of the different groups to evaluate if this is an appropriate pool for this sort of study (Jyl)
Preview your changes to the wiki web page by clicking the rectangular button labelled "Preview Changes"
Once you are satisfied with the web page, save the changes by clicking the "Save Changes" button.
Add a Wiki page
A Wiki web page is considered to describe a specific topic. To add a new topic:
Edit an existing Wiki page and add a WikiWord defining the name of your new Wiki topic.
Preview and Save your changes to the existing web page. Your new Wiki Topic will have a small question mark inserted after the word. This means the new topic has not yet been created.
Click the new topic.
Enter a Wiki user name and password if prompted to do so.
You will be viewing a Wiki Edit web page. Enter the contents of your new topic.
Preview the changes and revise until you are satisfied (see above for details).
* Save the changes to your newly created Wiki Web page.
Adding Images to a Wiki page
*See "Attaching a file to a Wiki page", below.
Attaching a file to a Wiki page.
You may at time want to associate an external file with a Wiki topic.
Examples of this might be to add the detailed agenda of a meeting, or a spreadsheet table containing experimental results,and so forth.
To do so,
Ensure the file is on your local computer.
Click the button labelled "Attach a file". You will be asked to locate the file you want to upload, and to supply a comment that describes the file.
Click the "Upload File" button at the bottom of the upload page.
Your file will be sent to the Wiki web site and a table of file attachments to this web page will appear at the bottom of the web page if it not already there.
If you select the "Link" checkbox before uploading the file and it is an image format recognized by our Wiki software (Twiki) the picture will appear in the web page. You may then Edit the page (see above) if you want to modify the text before the picture, or it's location on the web page.
Deleting an attached file
Locate the attached file in table of files (usually at the bottom of the wiki web page).
Click "Manage"
Click "Move Attachment" (at the bottom of the management web page).
Choose "Trash" from the drop-down Web menu of projects.
Type "TrashAttachment" into the Topic text entry area.
Del Mar Inn 720 Camino del Mar, Del Mar, CA 92014
(858) 755-9765
Contact the Del Mar Inn - Steve Macky, General Manager, (858) 755-9765,
and mention "Mark James, UCSD Neurosciences" to get the UCSD rate of $99/night.
Shuttle service to UCSD available upon request (Mon-Fri)
Amtrak - Pacific Surfliner, get off the train at Solana Beach. Taxis are usually available at the station. You can also catch the NCT number 101 bus nearby at the southwest corner of Loma Santa Fe and Old Highway 101. The 101 runs every half hour and takes about 40 minutes to reach UCSD.
The LONI Subversion repository location is svn+ssh://cvs.loni.ucla.edu/cvs/map . The following is the directory structure under trunk/ , which contains all the source codes, libraries, and build scripts.
Be sure to read the MBAT/SHIVA Repository Check-in Policy before checking-in codes.
Source code directory, which include not only Java source codes, but also various other resources, including build scripts. Its direct child directories are sources for different builds, core_src/ or plugin_src/.
/src/braingrapheditor_src/
This directory contains the sources for the BrainGraph Editor workspace and its standalone build sources.
/src/core_src/
This directory contains the core frame work. It is used by all other builds.
/src/kali_src/
This directory contains the sources only needed by Kali build. Kali is aimed to be a compact of SHIVA with only limited features.
/src/mbat_src/
This directory contains the sources only needed by MBAT build.
/src/plugins_src/
This directory contains various plugins that are not needed by all the builds.
/src/plugins_src/bams_src/
BAMS connection query.
/src/plugins_src/braingraph_src
This directory contains sources for BrainGraph internal structure, file IO filters, and GUI viewing components.
/src/plugins_src/ccdb_src/
This directory contains clients for connecting to CCCDB services.
/src/plugins_src/curveeditor_src/
A 2D image registration workspace using registered curves
/src/plugins_src/exedemo_src/
An demo of how to write a SHIVA/MBAT plugin.
/src/plugins_src/expression_src/
Gene Expression query plugin.
/src/plugins_src/flexdockmanager_src/
Window manager using Flexdock docking framework.
/src/plugins_src/gemtool_src/
An old plugin for SHIVA that uses Dr. David Shattuck's automatic registration executable.
/src/plugins_src/jidemanager_src/
Window manager using JIDE docking framework.
/src/plugins_src/imagereg_src/
This directory contains archaic image registration (point and curve) workspaces.
/src/plugins_src/imagestack_src/
A plugin in the works for composing 2D images into a volume.
/src/plugins_src/latis_src/
A plugin that retrieve remote images using LONI latis server.
/src/plugins_src/ntclient_src/
This directory contains Heng's client implementation to NeuroTerrain server.
/src/plugins_src/popupmanager_src/
Window manager using popups windows rather than docking.
This directory contains the sources needed to build SHIVA builds. Currently it also contains plugins needed by MBAT and Kali builds. Eventually many of these plugins would be moved to /src/plugin_src/.
The landmark-based registration plugin allows the user to align 2D or 3D images using the LONI Landmark warp library.
Getting Started
To use the landmark-based registration plugin:
Open the Registration Workspace.
Add and select the Source and Template data
Select the Landmark Warp (2D/3D) item in the Registration Method combobox. If successful, the source and template data will be displayed in the workspace, along with the GUI controls.
File Formats supported
Jpeg
GIF
TIFF (color, 16bit greyscale)
PNG
BMP
Cart objects supported
derived class of Image2D
User interface
Adding/removing landmarks
Mouse right-click to add landmarks. A corresponding landmark is shown in the other image, in the same relative position.
Mouse left-click to select a landmark for editing. Mouse left-click and drag to move the landmark.
To remove a landmark, mouse left-click to select, and then click the Delete button.
Zooming in/out
Select the image to zoom by clicking the Apply Zoom checkbox underneath the image.
Click the Zoom in (magnify icon) or Zoom out (magnify) buttons.
To reset the view, click on the Reset button (home icon)
Registration type
In the combobox, select the registration method.
Functional Specification
Workspace Interoperability
Result of the registration can be added to the cart as a BufferedImage object
We need to pick at least one data format for large (larger than available RAM, larger than a 32-bit address space) 3D image volumes. This rules out some formats, most notably multipage ("3D") TIFF, which uses 32-bit internal offsets and breaks for files larger than 2GB. I haven't been able to determine whether Analyze 7.5 format fully supports files larger than 4GB, but I've been able to save a 4GB stack in this format and reload it without errors or obvious problems.
Datasets this large impose several constraints. Downloading an entire dataset is impractical for many use cases, as it can take several minutes even on a fast local network, and hours on an intercontinental or residential network. Reslicing a non-memory-resident dataset "on the fly" is impractical as well, taking many seconds or minutes unless the dataset is specially formatted (see NeuroTerrain and related work); such special formats generally aren't widely supported by other imaging applications, so we would need to provide (and support!) software to translate volumes between special and standard formats.
It would be nice if we could store and serve large data in a compressed format, but as far as I know, common compressed formats (.gz) don't provide a computationally cheap way to seek and retrieve an arbitrary uncompressed "chunk" of data from the middle. We could use a ZIP archive of individual compressed slices, but I'd want to see some performance tests before picking this as our format of choice. I'd like to pick an uncompressed format for our first release.
Use cases
We want to support, at a minimum, browsing 2D slices of a 3D volume in the volume's "native" orientation. Slices in the native orientation may be stored as individual 2D image files, or as contiguous blocks within a 3D image file. It's generally easy to load and display native slices quickly enough to do it as part of a direct-manipulation task, so the user can adjust a control and watch for the desired slice to appear -- this implies a total latency of well under one second to load an image.
We would like to support browsing along three orthogonal axes -- the native axis of a volume (x-y planes at the current z location), and the other two "natural" axes (y-z at the current x location and x-z at the current y location). A simple "brute-force" solution is to pre-generate volumes in the other two orientations, and then retrieve slices natively from the appropriate volume. This triples storage overhead, but would seem to minimize computation and bandwidth to memory, storage, and the network. It also necessitates a way to keep track of the multiple, related volumes -- possibly a simple naming convention, but preferably a metadata format like the .keg or .atlas file.
We want to superimpose label information on large datasets. This implies that the atlas display system should be able to take advantage of large-data access methods, which implies architectural constraints on both the large-data model and the atlas viewer.
Implementation Details
Network vs. local file access
I anticipate that we will want to support both networked and local access to large datasets. I would prefer a design that isolates this issue as thoroughly as possible. At a high level of abstraction, we want to specify a dataset by name/location, request a slice from that dataset by orientation and position, and receive a 2D image representing that slice.
Obviously, NeuroTerrain already provides this for network data. I don't want to re-invent significant portions of the NeuroTerrain protocol! We may, however, want to define a subset of NeuroTerrain's functionality that would be easier to support for "dumb" data formats and protocols -- say, only supporting three orthogonal orientations (or a single native orientation), and only native resolution.
One large file vs lots of small files
If we represent a large 3D volume as a series of files (typically one per slice), it's easy to "manually" select files representing a subset of the whole volume, or open the volume in sections, or split it across small removable media. This also happens to be the native format for CIVM volume data, which makes it convenient for us. However, opening and closing a file entails more overhead than seeking within an already-open file (see below), and moving and copying large collections of files is less convenient than manipulating single files.
If we use a single-file (or file-plus-header) representation, it becomes harder to manually explore subsets of the volume outside of MBAT, but I don't think that should constitute an MBAT design constraint. It's potentially more efficient to work with a single file (see below).
Persistent channel vs. open/close for each new slice
MBAT's current image-reading model opens a file or network connection, loads the image into RAM, and closes the connection. So does ImageJ, and so do most other programs, at least by default.
Some "virtual" access methods, like ImageJ's Virtual Stack facility, do the same thing on a slice-by-slice basis -- to get a slice (or a row or a single voxel), you open the corresponding file, read it (in its entirety) into RAM, and close it. This fails miserably for operations that cross planes, as you're potentially doing N^2 open/read/close cycles to get an N*N slice. It can even cause problems for native-orientation browsing, though, because ImageJ's event-handling loop blocks on slice loading while it tracks the Z-axis scroll bar. If you're accessing a network service or file system that takes more than a few hundred milliseconds to open, read and close a file, navigation becomes difficult. In a network environment, it's very hard to meet that constraint. (When I did performance tests on SRB, opening a file imposed a 4- to 8-second MCAT delay.)
If we instead persist a connection -- keep a file open while we're browsing it, or keep a network connection alive -- we can get big latency improvements, which means big user-experience improvements. I'd like very much for our APIs to support this mode of operation.
Previous work, and lessons learned
Shiva and previous versions of MBAT offered large-data support, including support for CIVM large datasets. As best I could determine, this worked by downsampling data as it was loaded. This didn't work out well for our needs -- the initial opening was very, very slow (slower than simply reading the entire dataset), the downsampled data wasn't interpolated for smoothness, and there was no way to "zoom in" to get a full-resolution view. Getting higher-resolution images is one of CIVM's main reasons for existing, and if a tool can't show us our data at full resolution, it isn't useful to us. Mandatory downsampling is not an option.
The CIVM lab database serves up TIFF slices in native orientation "on demand" over a network connection. It uses ImageJ as a viewer, with a plug-in that extends !!ImageJ's virtual-stack code. It works okay on our LAN, but it's painful over remote connections because of how ImageJ interleaves image-load, display refresh, and navigation UI actions. I added a facility to cache a number of slices in RAM; this helps a little. Were I to start over, I'd want to re-engineer the event loop for stack navigation, and I'd consider loading a compressed image format (JPEG) during navigation, replacing it with an uncompressed TIFF when navigation pauses.
VoxStation, a commercial LIMS we use at CIVM, serves up JPEG or TIFF images in native or orthogonal orientations. It precomputes orthogonally resliced stacks, essentially keeping each stack in triplicate; it also precomputes JPEG image sequences for quicker transfer. Performance is outstanding on a LAN, and quite usable even over slower and higher-latency remote connections. The viewer, also based on ImageJ, caches and prefetches data aggressively.
Conclusions (for the moment)
The large-data viewer plugin should be able to display both local data (from a local file) and remote data (from a network service). If our high-level interface accepts an orientation and an offset, and returns a data block representing a 2D image, we can provide implementations for both access methods. At their simplest, these methods could just compute an offset into a file, grab one slice worth of data, and return it. We'll need to figure out how to negotiate things like voxel depth, byte-ordering and so forth.
We can gain performance benefits if we support persistent connections, either to an open file or to a network service. Adding a simple state component (open, closed, broken) to the interface shouldn't be prohibitive.
We will support Analyze and/or Nifti as our initial large-data format, since these formats appear to support large volumes. I would like to add support for CIVM native format (series of raw slice files), but I don't consider this a requirement for the first release.
For the first release, we may want to support only native-orientation viewing. Precomputed three-axis viewing could come in a subsequent release.
-- JeffBrandenburg - 14 Jan 2009
The Large Volume Atlas plugin provides support for large volumes in the MBAT 3D Atlas Viewer. Please see LargeVolumes and 3D Atlas for details on preparing large volumes and atlas description files.
This plugin uses the same .atlas format as the 3D Atlas Viewer. If a .atlas file refers to large volumes via their .lhdr filenames, Large Volume Atlas will open those volumes as Large Volumes, without loading the full volumes into RAM.
Getting Started
To open a file using the 3D atlas rendering plugin
Open the Viewer Workspace.
If in DualView mode, select the target Viewport (Left-mouse-click anywhere in the viewport in the data display area).
In the Layer Controls, open the dropdown menu to the right of the Open File button.
Select Large Volume Atlas. An open file dialog box appears. Navigate to and select the file(s) you want to open (multiple selection allowed using Shift+Left-mouse-click). Click Open. If successful, the digital atlas (volume with colored labels) will appear in the data display area and the label hierarchy graphs will intially be docked to the left-side of the main application frame.
The Large Volume Viewer (LVV) plugin allows the user to view volume image data, such as MRI and CT, without loading an entire dataset into memory. Individual slices are loaded from a local file on demand. This makes it possible to browse volumes quickly (you don't have to load the whole volume in order to view a few slices), to browse large volumes (multi-gigabyte) on machines with limited RAM, and to open multiple large volumes simultaneously.
To avoid time-consuming out-of-core reslice operations, LVV by default displays volumes only in their "native" orientation -- if the original volume represents a specimen as a series of transverse slices, LVV will only display transverse views, and will not display sagittal or coronal orientations. If you precompute and save resliced volumes in orthogonal orientations, and make these volumes are available, LVV will display the corresponding orientations. This lets you browse a large volume in three orientations. Note that this approach triples the disk space required to represent the image volume.
LVV is currently subject to an 80MB limit imposed by the ImageJ subsystem; this means that images whose individual slices are very large may cause problems. We hope to address this issue prior to general release.
File format
In its initial version, LVV supports volumes in the Analyze format. This format puts header information in a small file with a .hdr extension, and voxel data in a file with a .img extension. To indicate to MBAT that a volume should be processed with LVV, change the header file's extension from .hdr to .lhdr.
NOTE: The Large Volume Viewer cannot display Analyze volumes with compressed image data (.img.gz, .img.z). LVV reads a slice by skipping to that slice's location in the .img file, without reading through the rest of the file first. There's no way to do this with standard .gz or .z files.
Preparing Analyze volumes for use with LVV
To let MBAT process an Analyze volume as a Large Volume, you must rename or copy its .hdr file to a .lhdr file (without any changes to its content). If you copy instead of renaming, and leave the .hdr file, you can still open the volume using the standard 3D volume viewer (assuming you have enough RAM).
Example:
To let LVV display orthogonal slices (coronal or sagittal orientation), you must provide versions of your .img file in the proper orientations. The original file is assumed to be in Nifti standard orientation: +x=Right, +y=Anterior, and +z=Superior (brain's left = left, olfactory bulbs are toward the bottom, cortex is toward the last slice). To generate a sagittal volume, use ImageJ or the tool of your choice to reslice the original volume from the left, and save the new volume in Analyze format with ".S" inserted between the filename and the .img extension. To generate a coronal volume, reslice the original volume from the top, and save the new volume in Analyze format with ".C" inserted between the filename and the .img extension. (LVV ignores the .S.hdr and .C.hdr files that are also produced; you can delete them, or leave them for other tools that may need them.)
For the past couple months, we have been trying to adopt MAGE as our standard, and make our existing BIRN Micro-array database to be MAGE compliant. Since BioWarehouse has the API and database framework that supports MAGE, we have decided to migrate our existing database to BioWarehouse.
Primary goal: Create MouseBIRN or BIRN group instance of MAGE by itemizing those packages in MAGE that are applicable to most MouseBIRN or BIRN group, and mapping our existing data model to MAGE-OM.
Background
So far, we have our initial MouseBIRN MAGE instance created based on MPTP data. This is a very preliminary form, and still open for suggestion. After our meeting with Stanley Nelson’s group, we found that they are also revolutionizing their existing MAGE instance, and we may not share similar data structures. However, they provide valuable input, and based on those and our research, here are some issues hopefully we can get it ironed out ASAP so that we can move forward.
Working Page to standardize some of the MAGE entries across Mouse BIRN or BIRN test beds
the identifier prefix: To identify where the data is from and what source (Accession number)
is there a BIRN standard we should adopt?
It is in 2004 to construct MAGE object identifiers in the following LSID-like manner: <authority>:[<namespace>]:<object>[:<revision>>]
Recommendation: Jeff G?
database reference code: This specifies if the raw data is coming from another DB or if we point to data in another DB.
MAGE-TAB is a simplied version of MAGE-ML, and is proposed to be part of MAGEv2. The data is arranged in tabular format instead of XML like MAGE-ML. It consists four different types of files: Investigation Description Format(IDF), Array Design Format(ADF), Sample and Data Relationship Format(SDRF), Raw and processed data files.
This is a software package supported by ArrayExpress curators, which is able to generate MAGE-ML from Tab2MAGE spreadsheet document.The spreadsheet consists of three sections, separated by one or more blank lines: Experiment, Protocol and Hybridization.
Daniel has submitted a microarray dataset to GEO using the SOFTmatrix and GEOarchive metadata format, and found it much clearer with example and annotations for large Affymetrix datasets. Their format may be easier for researchers to organize their information easily, and easily integrate with the database entries.
Example
Click here for Daniel's submittied file, which also includes the mapping between GEOarchive meta data and MAGE-TAB metadata.
Audit and Security package contains classes that describe an individaul contact information, or an oragnization information, as wells as the the security group they belong, and the role they play.
Array package contains classes that describe individual arrays, including detailed information on relevant manufacturing proccesses. It also contains references to the LIMS data that might contain BioMaterial information being used.
unique identifier for each manufacturer, use manufacturer assession number as prefix
Person
(Same as Contact->Person)
Arrays
contain multiple array
Array
ID
unique identifier for each array chip
other array properties should be automatically loaded based on the array chip model
ArrayDesign
ArrayDesign package contains classes that describe a microarray design. PhysicalArrayDesign describes the design that is being used to manufacture physical array.
DesignElement contains classes that describes the purpose of each Array. The Feature describe the intended location on the Array.
It can be specified as reporters or CompositeSequence for the arrays.
Experiment package contains a collection of BioAssays that are related to the ExperimentalDesign. ExperimentalDesign is the description and collection of ExperimentalFactors and the BioAssays information.
BioMaterial package describes the biological material being used, and the description of the creation through BioSource, BioSample, LabelExtract classes. BioMaterial can be related to other BioMaterial through DAG(directed acyclic graph). BioSample are products of treatments that are of interest. It can be used as the sources of other BioSamples. BioSource is the raw material information. LabelExtracts are special BioSamples? that have Compounds that are detectable.
BioAssay represents both physical and computational groupings of arrays and biomaterials. PhysicalBioAssay is a bioAssay created by the BioAssayCreation event. A measured bioAssay is the direct processing of information in a physical bioAssay by the featureExtraction event. DerivedBioAssay is created by the Transformation BioEvent? from one or more MeasuredBioAssays or DerivedBioAssays.